2015-06-17 5 views
0

У меня есть сайт, который использует несколько URL-адресов для одного приложения. В зависимости от URL-адреса сайта вы получите другой контент. Мне нужно создать правило перезаписи, которое перенаправляет пользователя на другую страницу в зависимости от того, какой URL-адрес попадает на пользователя.Модификация страницы повторного обслуживания, использующая несколько URL-адресов

Например: Если пользователь посещает www.foo.bar пользователь будет перенаправлен на www.foo.bar/maintWWW.html Но если пользователь посещает www.bar.foo пользователь будет перенаправлен на WWW .bar.foo/maintWWW2.html

Помните, что, поскольку мы используем одно и то же приложение, но разные URL-адреса, для которых эти 2 html-страницы должны быть названы по-разному, чтобы обслуживать разные контенты.

мне удалось использовать это, но он перенаправляет только как URL, на одной странице,

RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000 
RewriteCond %{REQUEST_URI} !/maintWWW.html$ [NC] 
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC] 
RewriteRule .* /maintWWW.html [R=302,L] 

Я попытался заменить %{REQUEST_URI} с фактическим URL сайта я хочу перенаправлены, но это не сработало.

RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000 
RewriteCond http://www.foo.bar !/maintWWW.html$ [NC] 
RewriteCond http://www.foo.bar !\.(jpe?g?|png|gif) [NC] 
RewriteRule .* /maintWWW.html [R=302,L] 

RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000 
RewriteCond http://www.bar.foo !/maintWWW2.html$ [NC] 
RewriteCond http://www.bar.foo !\.(jpe?g?|png|gif) [NC] 
RewriteRule .* /maintWWW2.html [R=302,L] 

Как я могу заставить это работать? Можно ли включить несколько URL-адресов для перенаправления на одну страницу? Было бы неплохо учитывать и разработку и размещение URL-адресов. Пример ниже снова:

RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000 
RewriteCond http://www.foo.bar http://staging.foo.bar http://dev.foo.bar !/maintWWW.html$ [NC] 
RewriteCond http://www.foo.bar !\.(jpe?g?|png|gif) [NC] 
RewriteRule .* /maintWWW.html [R=302,L] 

ответ

2

Вы должны проверить HTTP_HOST в вашем состоянии, чтобы проверить домен, а затем перенаправить на его основе.

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(www\.)?foo\.bar [NC] 
RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000 
RewriteCond %{REQUEST_URI} !/maintWWW.html$ [NC] 
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC] 
RewriteRule .* /maintWWW.html [R=302,L] 

RewriteCond %{HTTP_HOST} ^(www\.)?bar\.foo [NC] 
RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000 
RewriteCond %{REQUEST_URI} !/maintWWW2.html$ [NC] 
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC] 
RewriteRule .* /maintWWW2.html [R=302,L] 

Если у вас есть несколько имен хостов или псевдонимы, которые можно использовать в настройках вы можете сделать это.

RewriteCond %{HTTP_HOST} ^(www|dev|staging)\.foo\.bar [NC] 
RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000 
RewriteCond %{REQUEST_URI} !/maintWWW.html$ [NC] 
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC] 
RewriteRule .* /maintWWW.html [R=302,L] 
+0

Работало отлично! Спасибо. – fyroc

+0

Без проблем рад, что это сработало. –