我有一个重写规则,如果您输入:
www.whatever.com/profile-one.php
这是您看到的url,但是实际的模板页面是:
www.whatever.com/profile.php
以下是htaccess中的行:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)([^/])$ http://www.whatever.com/$1$2/ [R=301,L]
RewriteRule profile-(.*)\.php$ profile.php?name=$1我的问题是,如果你访问一个网址,比如:
www.whatever.com/second/profile-one.php
即使profile.php模板不存在于“第二个”目录中,它仍然试图返回配置文件页。防止这种情况的最好方法是什么?
发布于 2014-04-16 14:38:11
这是因为这里有错误的规则。您需要在第二条规则中使用启动锚:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)([^/])$ http://www.whatever.com/$1$2/ [R=301,L]
RewriteRule ^profile-(.*)\.php$ profile.php?name=$1 [L,QSA]https://stackoverflow.com/questions/23112175
复制相似问题