Apache .htaccess不允许在重新写入的URL上使用尾随斜杠
我正在使用以下代码编写一些URL:Apache .htaccess不允许在重新写入的URL上使用尾随斜杠,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我正在使用以下代码编写一些URL: 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] 当您访问/登录或/注册或其他操作时,它非常有效,但是当您添加一个尾随斜杠时
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]
当您访问/登录或/注册或其他操作时,它非常有效,但是当您添加一个尾随斜杠时,它会丢失样式表。我曾尝试在头部添加一个基本链接,但这不仅会修复问题,还会造成混乱(让人觉得它们来自外部URL)
我尝试过以下代码:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
但是它会把你带到我的,而不是说(文件都在哪里)
是否有一种简单的方法可以删除尾部斜杠?为此子目录创建一个
RewriteBase
。htaccess驻留在其中,并相应调整尾部斜杠规则:
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]
此.htaccess是否位于
/directory/other/
中?您尝试的问题是导致/
。这就是你登上顶峰的原因。我怀疑如果你放弃它,它会工作得很好:RewriteRule^(.*)/$$1[L,R=301]