我在.htaccess中有以下RewriteRule,从友好的URL重定向到我的主应用程序文件:
RewriteRule ^\/(.*).html$ home/www/page.php?p=$1 [L]
这应该将指向html页面的任何url发送到page.php,并将url作为将由应用程序解析的参数 . 这适用于看起来像http://www.example.com/hello.html的网址
问题是,当url包含目录路径时,我收到404错误,例如:http://www.example.com/category/hello.html
错误显示:“文件不存在:/ home / www / category”
似乎它首先寻找'类别'路径而不是处理.htaccess任何想法如何解决这个问题?
1 回答
您是否尝试从重写规则中删除初始
\/
?我刚刚尝试了以下
.htaccess
文件:这个作为我的
page.php
:当我去/category/hello.html时,我得到以下内容:
完全符合预期 .
另请注意,您需要在
html
之前转义.
,因为您可能不希望/category/hellozhtml工作 .