Url之前重定向到目录

时间:2014-03-02 14:17:30

标签: php .htaccess

.htaccess文件:

RewriteEngine on

RewriteBase /P5/

#existing rule
#remove the www.
RewriteCond %{HTTP_HOST} ^www.website.co.uk$ [NC]

#new Rule
#if its not a directory
RewriteCond %{REQUEST_FILENAME} !-d
#and it has a trailing slash then redirect to URL without slash
RewriteRule ^(.+)/$ /$1 [L,R=301]

RewriteRule ^([a-zA-Z0-9_-]+)$ def.php?p=$1 [L]

这是我访问某些菜单。

ex:home在我的地址栏中写有:localhost/P5/home,但如果我在家后添加/localhost/P5/home/

它会自动重定向到:localhost/home并且找不到页面

有人知道这个问题吗?感谢

1 个答案:

答案 0 :(得分:-2)

  

但如果我在家后添加/ localhost/P5/home/它会自动重定向到:localhost/home

当然是这样,因为您已将/P5/设为RewriteBase,因此

RewriteRule ^(.+)/$ /$1 [L,R=301]

仅在home/上匹配,您重定向到带有前导斜杠的已捕获部分home,因此它变为/home - 以斜杠开头的相对网址始终指向您的域,整个事情变成http://localhost/home

如果您不想这样 - 那么在重写结果前使用前导斜杠。