带有尾部斜杠的htaccess mod_rewrite问题

时间:2016-03-26 12:52:36

标签: mod-rewrite

我想知道是否有人可以提供帮助?基本上我有一套mod_rewrite规则,它们都运行良好,除非我在URL的末尾加上一个斜杠,它变得很疯狂。仍然显示页面(有时),除了所有的CSS,JS等都不包含在内,因为当有一个尾随斜杠时路径会混乱。解决它的唯一方法是放置一个BASE标签,我真的想避免它,因为它带来了它自己的一系列问题。我的htaccess有问题吗?我只需要忽略尾随斜杠。

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^resetpassword/([^/.]+)/?$ resetPassword.php?resetCode=$1 [L]
RewriteRule ^activate/([^/.]+)/?$ activateAccount.php?ACTCode=$1 [L]
RewriteRule ^dashboard/?$ dashboard.php [NC,L]
RewriteRule ^login/?$ login.php [NC,L]
RewriteRule ^register/?$ register.php [NC,L]
RewriteRule ^messages/inbox/??$ messagesInbox.php [NC,L]
RewriteRule ^messages/archive/??$ messagesArchive.php [NC,L]
RewriteRule ^messages/??$ messagesInbox.php [NC,L]

1 个答案:

答案 0 :(得分:1)

可能没有很好的解决方法,因为在任何情况下你都会切换“目录”级别(比如messages/inbox)。

最常见的解决方案是使用绝对路径来引用CSS,图像等:

<link rel="stylesheet" href="/css/styles.css">

或者有一个包含web root的PHP变量:

<link rel="stylesheet" href="<? echo $webroot; ?>/css/styles.css">

这两种方法都比使用base标签或做一些基于.htaccess的重定向恶作剧要好得多。

相关问题