繁体   English   中英

Windows 10 Xampp Apache - htaccess 重写器不工作

[英]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/?$仅匹配noexistnoexist/ ,因此/noexist/test.php被此规则忽略。 它也只重写到/folder/

换句话说,这仅将/noexist (或/noexist/ )重写为/folder/

要将/noexist/<something>重写为/folder/<something> ,您需要捕获<something>部分并将其传递给目标 URL(即替换字符串)。 例如:

RewriteRule ^noexist/(.*) /folder/$1 [L]

替换字符串中的$1反向引用包含由RewriteRule模式中带括号的子模式(即(.*) )捕获的 URL 路径。

不要忘记Llast )标志。 (如果文件后面有其他指令,这很重要。)

请注意,此重写是无条件的,无论/folder/<something>是否存在。 如果您想在重写之前检查/folder/<something>是否存在,请添加一个附加条件 例如:

RewriteCond %{DOCUMENT_ROOT}/folder/$1 -f
RewriteRule ^noexist/(.*) /folder/$1 [L]

这假设您的.htaccess文件位于文档根目录中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM