[英]Windows 10 Xampp Apache - htaccess rewriterule not working
我在Windows 10
上使用apache
XAMPP
并试图让htaccess
工作。 到目前为止我有这个...
RewriteEngine On
RewriteRule ^noexist/?$ /folder/
我希望有人到 go
www.mysite.com/noexist/test.php -> www.mysite.com/folder/test.php
但我仍然希望 URL 成为www.mysite.com/noexist/test.php
我刚刚收到404,我哪里出错了? 我已经通过放入无效代码确认正在加载 htaccess 文件,它会引发错误,所以我确定该文件正在被使用。
RewriteRule ^noexist/?$ /folder/
正则表达式^noexist/?$
仅匹配noexist
或noexist/
,因此/noexist/test.php
被此规则忽略。 它也只重写到/folder/
。
换句话说,这仅将/noexist
(或/noexist/
)重写为/folder/
。
要将/noexist/<something>
重写为/folder/<something>
,您需要捕获<something>
部分并将其传递给目标 URL(即替换字符串)。 例如:
RewriteRule ^noexist/(.*) /folder/$1 [L]
替换字符串中的$1
反向引用包含由RewriteRule
模式中带括号的子模式(即(.*)
)捕获的 URL 路径。
不要忘记L
( last
)标志。 (如果文件后面有其他指令,这很重要。)
请注意,此重写是无条件的,无论/folder/<something>
是否存在。 如果您想在重写之前检查/folder/<something>
是否存在,请添加一个附加条件。 例如:
RewriteCond %{DOCUMENT_ROOT}/folder/$1 -f
RewriteRule ^noexist/(.*) /folder/$1 [L]
这假设您的.htaccess
文件位于文档根目录中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.