我已经搜索过,但还没有找到解决这个确切问题的方法。
我有一个网站域名'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/正常工作,没有冗余文件夹名称非常感谢您的帮助!
答案 0 :(得分:0)
这是因为mod_dir(添加/
)不知道url会被重写。
您可以使用
禁用DirectorySlashDirectorySlash Off
然而,这将使alternatedomain.com/folder
的请求导致找不到404。你可以用一些重写来解决这个问题。所以完整的解决方案就像:
DirectorySlash Off
RewriteCond %{DOCUMENT_ROOT}/$0 -d
RewriteRule ^alternatedomain/(.+[^/])$ /$1/ [R,L]