我有一堆域名指向我主机上的同一目录“public_html”
主文件夹中有一个.htaccess文件,它将每个域本地重定向到与%{HTTP_HOST}
mod_rewrite变量同名的特定文件夹。 (例如:将www.domain.com
重定向到public_html/www.domain.com/
)
这是.htaccess:
的内容RewriteEngine On
RewriteBase /
RewriteCond /%{HTTP_HOST}/#%{REQUEST_URI} !^([^#]+)#\1
RewriteRule ^(.*)$ %{HTTP_HOST}/$1 [L]
对于Directory Slash指令,我遇到了问题
如果我尝试访问域网址中没有像http://www.domain.com/folder
这样的正斜杠的文件夹,则mod_dir会应用DirectorySlash并从外部将我的请求重定向到http://www.domain.com/www.domain.com/folder/
我尝试在域目录重定向之后应用301重定向,如下所示:
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*[^/])$ $1/ [R=301,L]
但为了实现这一目标,我必须能够检查%{REQUEST_FILENAME}
'文件夹中是否存在%{HTTP_HOST}
。我甚至尝试过以下方法,但没有成功:
RewriteCond /%{HTTP_HOST}/%{REQUEST_FILENAME} -d
RewriteRule ^(.*[^/])$ $1/ [R=301,L]
如何动态检查%{REQUEST_FILENAME}
是否是一个目录,该目录位于与%{HTTP_HOST}
同名的目录中?
提前致谢
答案 0 :(得分:0)
如果您使用-d
,则需要提供绝对文件系统路径。所以试试这个:
RewriteCond %{DOCUMENT_ROOT}/%{HTTP_HOST}%{REQUEST_URI} -d
RewriteRule ^(.*[^/])$ $1/ [R=301,L]