Вопрос о перенаправлении URL/Apache. (домен+каталог перенаправлен на sudomain)

Я пытаюсь понять это уже около 2 часов. Возникло новое требование, когда меня попросили попытаться найти способ отправлять запросы с foo.bar.com/blah на blah.bar.com.

Технически /blah не существует, но я надеялся перенаправить сервер до того, как он дойдет до этой точки.

Кому-нибудь приходилось это делать раньше?

Каково было решение?


person furstgurshnur    schedule 18.11.2009    source источник


Ответы (1)


Попробуйте это правило mod_rewrite:

RewriteEngine on
RewriteCond %{HTTP_HOST} =foo.bar.example
RewriteRule ^blah$ http://blah.bar.example

Или для произвольного пути URL:

RewriteEngine on
RewriteCond %{HTTP_HOST} =foo.bar.example
RewriteRule ^ http://blah.bar.example%{REQUEST_URI}

Если вы хотите непрозрачное перенаправление, используйте прокси для запроса, добавив P отметьте свое правило. А для постоянной переадресации используйте R=301.

person Gumbo    schedule 18.11.2009
comment
Спасибо вам за это. К сожалению, это не работает. Чтобы убедиться, что я понятен: foo.bar.com является допустимым субдоменом. Однако /blah — это несуществующий каталог, который я бы хотел, чтобы при запросе он перенаправлял/перенаправлял на blah.bar.com. Должно ли вышеизложенное работать для этого? - person furstgurshnur; 18.11.2009
comment
@furstgurshnur: Да, именно так и должно работать. Где вы хотите использовать это правило? Если в конфигурации сервера или виртуального хоста вам нужно поставить / перед blah: ^/blah$. - person Gumbo; 18.11.2009
comment
Ха! это сделает это. Спасибо Гамбо. - person furstgurshnur; 19.11.2009