我使用以下代码重写了一些网址:
RewriteEngine On
RewriteRule ^login/?$ login.php [NC,L]
RewriteRule ^register/?$ register.php [NC,L]
RewriteRule ^logout/?$ logout.php [NC,L]
RewriteRule ^([a-zA-Z]+)/?$ game.php?game=$1 [NC,L]
当您访问/登录或/注册或其他任何内容时它都很有用,但是当您添加尾部斜杠时,它会丢失样式表。我尝试在头部添加一个基本链接,但这比修复更糟糕(让事情认为他们来自外部网址)。
我试过这段代码:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
但它会将您带到我的http://www.example.com/login,而不是说http://www.example.com/directory/another/login(文件全部位于此处)。
是否有一种简单的方法可以删除尾部斜杠?
答案 0 :(得分:1)
为.htaccess所在的子目录设置RewriteBase
并相应地调整尾随斜杠规则:
RewriteEngine On
RewriteBase /directory/another/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+?)/$ $1 [L,R=302,NE]
RewriteRule ^(login|register|logout)/?$ login.php [NC,L]
RewriteRule ^([a-zA-Z]+)/?$ game.php?game=$1 [NC,L]