Проблема Mod-Rewrite поддомена Внутреннее перенаправление не работает

Я пытаюсь заставить субдомены работать на моем сайте с помощью htaccess, например:

shopping.site.local должен привести пользователя к site.local/shopping-and-fashion с сохранением исходного формата поддомена, т. е. с внутренним перенаправлением, которое пользователь не заметит.

Я добавил следующий скрипт:

RewriteCond %{HTTP_HOST} ^shopping.site.local$ [OR]
RewriteCond %{HTTP_HOST} ^www.shopping.site.local$
RewriteRule ^(.*)$ http://www.site.local/shopping-and-fashion/$1 [L]

Перенаправление происходит успешно, но внешним способом, как скрыть перенаправление, чтобы всегда иметь URL-адрес:

http://shopping.site.local

и содержание:

http://www.site.local/shopping-and-fashion


person Yazid Erman    schedule 18.01.2014    source источник


Ответы (2)


Вы пытались использовать [P] вместо [L]?

person Community    schedule 18.01.2014

Следующее использует обратное проксирование и должно дать вам то, что вы хотите

<VirtualHost *:80>
  ServerName shopping.site.local
  ProxyPass / http://www.site.local/shopping-and-fashion/ nocanon
  ProxyPassReverse / http://www.site.local/shopping-and-fashion/
</VirtualHost>

Возможно, вам придется взломать некоторые JS и CSS, чтобы приспособиться к изменениям пути, если исходные файлы не поддерживают относительные ссылки.

person Zaid Amireh    schedule 19.01.2014