这个问题分为两部分:
以下是我的.htaccess的一部分:
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule (.+) /$1.php [L]
以下是处理此问题的.htaccess的一部分:
RewriteRule ^register website/register
RewriteRule ^register/rules website/rules
我想要完成的是:
http://www.example.com/register使用重写规则来显示网站/注册 http://www.example.com/register/rules使用重写规则来显示网站/规则
问题是URL框显示了example.com/register/rules,但页面继续显示example.com/register的内容。
这里出了什么问题?是“.php”扩展是导致所有这一切的第一部分吗?或者我的htaccess完全错了?
答案 0 :(得分:1)
什么都没发生。 URL框显示example.com/register/rules,但页面继续显示example.com/register
的内容
这种情况正在发生,因为你没有遵守规则,你有这个:
RewriteRule ^register website/register
RewriteRule ^register/rules website/rules
第二条规则永远不会被应用,因为URI /register/rules
与第一条规则的正则表达式^register
匹配,意思是“URI 启动与register
” )。添加结束边界:
RewriteRule ^register/?$ website/register [L]
RewriteRule ^register/rules/?$ website/rules [L]
或交换它们:
RewriteRule ^register/rules website/rules [L]
RewriteRule ^register website/register [L]
虽然你需要[L]
标志。