Я пытаюсь сделать субдомен вперед через документ htaccess. Нижеследующие инструкции переадресуют http://sub.domain.com
во внутреннюю структуру Root > subfolder > index.php
. Все это хорошо работает.Как написать субдомен с htaccess?
# REWRITE DEFAULTS
# ====================================================================================================
RewriteEngine On
RewriteBase/
# SUBDOMAIN FORWARD
# ====================================================================================================
RewriteCond %{HTTP_HOST} ^sub.domain.com$
RewriteRule ^(/)?$ subfolder/index.php [L]
RewriteCond %{HTTP_HOST} ^sub.domain.com$
RewriteCond %{REQUEST_URI} !^/subfolder/
RewriteRule ^(.*)$ /subfolder/$1
Существует только одно (большое) падение с помощью этого метода. Когда вы пытаетесь добраться до папки в подпапке, такой как Root > subfolder > images
, перейдя на http://sub.domain.com/images/
, тогда все снова работает хорошо, однако, когда вы не закончите его косой чертой http://sub.domain.com/images
, адрес в адресной строке станет http://sub.domain.com/subfolder/images/
, что явно не что я хочу.
Так что, если бы я добавил косую черту, если бы была забыта косая черта?
RewriteCond %{HTTP_HOST} ^(.*).domain.com$
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteCond %{REQUEST_FILENAME} !(.*)/$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ http://%1.domain.com/$1/ [L,R=301]
Это все работает, когда у вас есть нормальный URL (http://www.domain.com/images
), потому что он будет определять это каталог и добавляет косую черту, и если это файл будет опустить слэш. Однако это не работает для нашего примера http://sub.domain.com/images
.
У кого-нибудь есть идея, как вы можете сделать субдомены правильно работать с помощью htaccess?