【发布时间】:2014-05-26 03:09:54
【问题描述】:
目前,当请求不是目录的 URL 时,我的 .htaccess 设置为删除任何尾部斜杠。问题是,这导致 test.domain.com/order.php/ 被重定向到 test.domain.com/test/order.php 而不是 test.domain.com/order.php。当不在子域中时,它可以完美运行。
这是我用来删除尾部斜杠的 .htaccess 代码:
#if it's not a directory
RewriteCond %{REQUEST_FILENAME} !-d
#and it has a trailing slash, then redirect to URL without slash
RewriteRule ^(.+)/$ /$1 [L,R=301]
不知何故,除了已经存在的子域之外,子域所服务的子目录也被添加到 URL 中。如何在不添加 /test 的情况下删除尾部斜杠?
编辑:
这是完整的 .htaccess:
RewriteEngine On
Options +SymLinksIfOwnerMatch
Options -Indexes
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [L,R=301]
【问题讨论】:
-
这个文件里还有更多规则还是只有这个?
-
添加了完整的 htaccess 内容来发布
-
如果它在父域的 DocumentRoot 中,它不会为子域执行(除非子域设置不正确)。你能显示子域的VirtualHost条目吗?
-
我不相信我可以访问该站点-该站点位于共享服务器上。但是,根据您的回答,我将规则放在子目录的 htaccess 文件中,现在它可以按预期工作。谢谢!
标签: apache .htaccess mod-rewrite subdomain trailing-slash