Назад | Перейти на главную страницу

Перенаправить пользователей с предыдущего поддомена на новый URL

Недавно я запустил новый веб-сайт, и один из отделов кампуса направил пользователей в виртуальный домен.

Например, www.ia.domain.com маскировался под собственный веб-сайт, который на самом деле был domain.com/ia.

Что я хочу сделать, так это перенаправить всех, кто попадает на www.ia.domain.com, на domain.com/ia,

а также www.ia.domain.com/faculty/ => domain.com/ia/faculty/

Это новая коробка, поэтому у нее нет исходной конфигурации.

Сайт работает на Apache с использованием linux (rhel5).

Я не знаком с mod_rewrite. Я сделал 301 редирект, но я не могу перенаправить таким образом виртуальный субдомен.

Вот то, что я ожидаю, будет работать в вашей конфигурации Apache (/etc/httpd/conf.d или /etc/apache2/conf.d, файл с именем, например, domain.com.conf):

Конечно, это может потребоваться отрегулировать в зависимости от того, какие другие конфигурации Apache у вас есть.

NameVirtualHost *:80
<VirtualHost *:80>
   ServerName www.ia.example.com
   ServerAlias ia.exmaple.com
   Redirect permanent /(.*) http://www.example.com/ia/$1
</VirtualHost>

<VirtualHost *:80>
   #  Your normal website configurations here
</VirtualHost>

Шон

Вам понадобится виртуальный хост на основе имени, настроенный для www.ia.domain.com.

В блоке конфигурации виртуального хоста следующее правило для mod_rewrite должно помочь:

RewriteRule ^/(.*) http://domain.com/ia/$1 [R]

Как насчет того, чтобы не использовать mod_rewrite и вместо этого использовать оператор перенаправления.

#Virtual Host for IA sub web
<VirtualHost *:80>
   ServerName www.ia.domain.com
   ServerAlias <other domain names they want to associate with this directory; ex: ia.domain.com>
   Redirect permanent / http://www.domain.com/ia_new_web_location/
</VirtualHost>

если вы хотите прозрачное перенаправление, попробуйте следующее:

rewriteCond %{HTTP_HOST} ^www.ia.domain.com
rewriteRule ^/faculty(.*) domain.com/ia/faculty$1 [P]

Сервер apache использует прокси-модуль (вам нужно включить прокси-модуль), чтобы сделать прозрачное перенаправление (без 301 или 302 http-кода)