2014-02-11 5 views
2

Я бы хотел, чтобы домен перенаправлялся в подкаталог. Из всех вопросов о SO, это самая функциональная установка .htaccess, которую я мог бы придумать, но это не совсем так.Несколько доменов на общем хостинге с .htaccess

RewriteCond %{HTTP_HOST} ^(www\.)?otherdomain\.com$ [NC] 
RewriteCond %{REQUEST_URI} !other-domain-dir/ [NC] 
RewriteRule ^(.*)$ /other-domain-dir/$1 [L] 

Он отлично работает на главной странице. Переход на otherdomain.com возвращает index.html, как и ожидалось. Но, если я перейду к otherdomain.com/test, я перенаправляюсь на otherdomain.com/other-domain-dir/test/, который загружает страницу правильно, но я не хочу, чтобы other-domain-dir был видимым. Как это исправить?

ответ

0

Я считаю, что /test/ - это каталог, а mod_dir добавляет трейлинг-косую черту.

Попробуйте этот код вместо:

RewriteCond %{HTTP_HOST} ^(www\.)?otherdomain\.com$ [NC] 
RewriteCond %{REQUEST_URI} !/other-domain-dir/ [NC] 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*?)/?$ /other-domain-dir/$1 [L] 

RewriteCond %{HTTP_HOST} ^(www\.)?otherdomain\.com$ [NC] 
RewriteCond %{REQUEST_URI} !/other-domain-dir/ [NC] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^(.+?)/$ /other-domain-dir/$1 [L] 
+0

В дополнение к тому, что вы предложили, я также добавил это выше. '# ADD TRAILING SLASH TO DIRECTORY IF NONE EXISTS' ' RewriteRule^([^ \.] + [^ /]) $ Http: //% {HTTP_HOST}/$ 1/[R = 301, L] ' Спасибо за помощь! –

+0

Приветствую вас, да, это правило верного слэш также будет прекрасным. – anubhava

Смежные вопросы