htaccess重写显示冗余的根文件夹

时间:2011-12-29 01:01:09

标签: .htaccess subdomain

我已经搜索过,但还没有找到解决这个确切问题的方法。

我有一个网站域名'mainwebsite.com'和其他几个在htaccess中管理的顶级域名。我遇到的问题是'alternatedomain.com'和子目录。

#alternatedomains

RewriteCond %{HTTP_HOST} alternatedomain.com
RewriteCond %{REQUEST_URI} !/alternatedomain/
RewriteRule ^(.*)$ alternatedomain/$1 [L] 

这很好用,alternatedomain.com很乐意提供mainwebsite.com/alternatedomain。

问题在于我可以访问任何文件夹,例如

alternatedomain.com/folder

,标题栏中的URL更改为

alternatedomain.com/alternatedomain/folder/

这让我发疯了。无法弄清楚我做错了什么!

编辑:只有当我尝试访问alternate.com/folder时才会发生,而当有后缀/时,才会发生这种情况,因此alternate.com/folder/正常工作,没有冗余文件夹名称

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

这是因为mod_dir(添加/)不知道url会被重写。

您可以使用

禁用DirectorySlash
DirectorySlash Off

然而,这将使alternatedomain.com/folder的请求导致找不到404。你可以用一些重写来解决这个问题。所以完整的解决方案就像:

DirectorySlash Off
RewriteCond %{DOCUMENT_ROOT}/$0 -d
RewriteRule ^alternatedomain/(.+[^/])$ /$1/ [R,L]