.htaccess 动态检查子目录中的目录

.htaccess 动态检查子目录中的目录,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我有一堆域,它们指向我主机上的同一个目录public_html。 主文件夹中有一个.htaccess文件,该文件在本地将每个域重定向到与%{HTTP_HOST}mod_rewrite变量同名的特定文件夹。例如:将www.domain.com重定向到public\u html/www.domain.com/ 这是.htaccess的内容: RewriteEngine On RewriteBase / RewriteCond /%{HTTP_HOST}/#%{REQUEST_URI} !^([^#]

我有一堆域,它们指向我主机上的同一个目录public_html。 主文件夹中有一个.htaccess文件,该文件在本地将每个域重定向到与%{HTTP_HOST}mod_rewrite变量同名的特定文件夹。例如:将www.domain.com重定向到public\u html/www.domain.com/

这是.htaccess的内容:

RewriteEngine On
RewriteBase /
RewriteCond /%{HTTP_HOST}/#%{REQUEST_URI} !^([^#]+)#\1
RewriteRule ^(.*)$ %{HTTP_HOST}/$1 [L]
当涉及到目录斜杠指令时,我遇到了一个问题。 如果我尝试访问域url中的文件夹而不使用正斜杠,如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\u FILENAME}是否存在于%{HTTP\u HOST}'文件夹中。我甚至尝试了以下方法,但都没有成功:

RewriteCond /%{HTTP_HOST}/%{REQUEST_FILENAME} -d
RewriteRule ^(.*[^/])$ $1/ [R=301,L]
我如何动态地检查%{REQUEST\u FILENAME}是否是一个目录,它将位于与%{HTTP\u HOST}同名的目录中

提前感谢

如果使用-d,则需要提供绝对文件系统路径。所以试试这个:

RewriteCond %{DOCUMENT_ROOT}/%{HTTP_HOST}%{REQUEST_URI} -d
RewriteRule ^(.*[^/])$ $1/ [R=301,L]