2013-03-10 12 views
3

我正在尋找一個廣義的IP規範化解決方案,不會硬編碼我的htaccess文件中的IP地址。我通常在亞馬遜EC2實例上運行我的應用程序,並且IP地址經常發生變化。我討厭每次都必須手動更新htaccess。具體而言,我正在尋找匹配通過IP地址訪問的頁面的htaccess規則,並執行301重定向到實際域。廣域IP規範化解決方案.htaccess內

回答

0

我打算假設你沒有任何子域名。下面應該做的伎倆:

Options +FollowSymLinks 
RewriteEngine on 
# 1 
RewriteCond %{HTTP_HOST} . 
# 2 
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ 
# 3 
RewriteRule (.*) http://www.domain.com/$1 [R=301,L] 

這將重定向任何東西比實際域其他所有資源的請求。

編輯:對於子域,那麼下面應該工作:

# If it's one of the domains of the IP address … 
RewriteCond %{HTTP_HOST} ^domain\.com [OR] 
RewriteCond %{HTTP_HOST} ^111\.222\.222\.111 
# … then redirect request for all resources. 
RewriteRule (.*) http://www.example.com/$1 [R=301,L] 
+0

我確實有子域名。我實際上在DNS中有一個通配符條目。所以我將不得不使用某種正則表達式來檢查IP模式並重定向到規範域。 – VinnyD 2013-03-23 03:29:32

+0

@VinnyD在這種情況下,您可以更改爲條件來檢查域或IP地址,然後重定向。我用這個例子修改了上面的內容。 – Gaffe 2013-03-25 13:45:08

+0

對不起,我不清楚。問題是,亞馬遜負載平衡器的IP地址可能會更改,恕不另行通知。有沒有辦法用正則表達式來匹配IP來捕獲任何可能的IP? – VinnyD 2013-03-27 00:40:51

0

假如你使用一些不同的Dynamic DNS,而不是考慮?這會讓IP地址頻繁更改,同時保持相同的DNS名稱。

+0

我想這樣做的原因是出於搜索引擎優化的目的,所以我不會因爲重複的內容而被毆打。 – VinnyD 2013-03-23 03:30:47