Я занимаюсь очисткой своего домена структура каталогов ain (горе мне за настройку содержимого корневого URL в корневом каталоге!) и мне нужно немного понять, как правильно использовать RewriteRule.
The Gist
Я хочу domain.tld ] для использования domain.tld / subdirectory / , но по-прежнему отображается как domain.tld в URL
My .htaccess So Far
Options +FollowSymlinks
RewriteEngine On
#Force removal of wwww subdomain
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.domain.tld
RewriteRule ^(.*)$ http://domain.tld/$1 [R=301,L]
#Trailing slash
RewriteRule ^/*(.+/)?([^.]*[^/])$ http://%{HTTP_HOST}/$1$2/ [L,R=301]
#Redirect root url to subdirectory
RedirectMatch 301 ^/subdirectory/$ http://domain.tld/
RewriteRule ^/$ /subdirectory/?$ [L]
RedirectMatch отлично работает. К сожалению, кажется, что последнее RewriteRule должно работать достаточно просто, но это не так. По-прежнему отображается старая настройка содержимого в корневом каталоге.
Что мне здесь не хватает?
Обновление: решено
Простое исправление, при котором у меня недостаточно опыта работы с .htaccess / apache, чтобы объяснить, почему.
У меня было:
RewriteRule ^/$ /subdirectory/?$ [L]
Удаление одной косой черты исправило все:
RewriteRule ^$ /subdirectory/?$ [L]
Итак, теперь мой вопрос: почему это?