0

我有一个重定向大部分工作,但有一个例外,当一个 url 在没有正斜杠的情况下运行时,重定向显示在地址栏中,这不是我所期望的行为。这是 .htaccess 文件:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(^.*)\.domain.com
RewriteRule (.*)  redirector.php?subdomain=%1 [QSA,L]

现在,如果我的域上有一个子域,我希望该请求转到 redirector.php 文件,这适用于所有情况,除非我有一个没有反斜杠的文件夹。我还尝试在条件末尾添加一个可选的正斜杠,但仍然不行。因此,当文件夹末尾没有正斜杠时会发生什么情况是请求来自

http://test2.domain.com/test

http://test2.domain.com/test/?subdomain=test2

无法弄清楚如何让它停止

http://test2.domain.com/test/

将工作。

4

1 回答 1

0

啊想通了,您可以轻松检查请求是否没有文件名,如果有,请使用正斜杠重定向!所以现在我有:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)([^/])$        /$1$2/ [L,R=301]

RewriteCond %{HTTP_HOST} ^(^.*)\.domain.com
RewriteRule (.*)  redirector.php?subdomain=%1 [QSA,L]
于 2013-08-13T19:29:20.463 回答