2015-06-17 59 views
0

我有一個網站使用多個網址,單個應用程序。根據網站的網址,您將獲得不同的內容。我需要創建一個重寫規則,根據用戶點擊的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] 

我試圖用我想重定向該網站的實際URL替換%{REQUEST_URI},但沒有奏效。

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也是很好的。下面再例如:

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

沒問題,很高興它解決了。 –