.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
并且找不到页面
有人知道这个问题吗?感谢
答案 0 :(得分:-2)
但如果我在家后添加/
localhost/P5/home/
它会自动重定向到:localhost/home
当然是这样,因为您已将/P5/
设为RewriteBase
,因此
RewriteRule ^(.+)/$ /$1 [L,R=301]
仅在home/
上匹配,您重定向到带有前导斜杠的已捕获部分home
,因此它变为/home
- 以斜杠开头的相对网址始终指向您的域,整个事情变成http://localhost/home
。
如果您不想这样 - 那么不在重写结果前使用前导斜杠。