У меня есть несколько доменов, которые указывают на один и тот же каталог "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]
У меня проблема с директивой Slash.
Если я пытаюсь получить доступ к папке в доменном 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_FILENAME}
в папке %{HTTP_HOST}
. Я даже попробовал следующее, но безуспешно:
RewriteCond /%{HTTP_HOST}/%{REQUEST_FILENAME} -d
RewriteRule ^(.*[^/])$ $1/ [R=301,L]
Как я могу динамически проверить, является ли %{REQUEST_FILENAME}
каталогом, который находится внутри каталога с тем же именем, что и %{HTTP_HOST}
?
Заранее спасибо