2011-01-05 188 views
1

我想在我的.htaccess中將用戶重定向到另一個url,具體取決於用戶訪問的內容。.htaccess:根據訪問的url重定向

在這種情況下,http://example.com/awesome.comhttp://awesome.com是同一個網站,如果用戶訪問http://example.com/awesome.com,我希望他或她被重定向到http://awesome.com

這可行嗎?

編輯:隨着答案的幫助下,我想出了這個工作的解決方案:有關的.htaccess

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^awesome.com$ 
RewriteRule ^(.*)$ http://awesome.com/$1 [R=301] 

回答

1

你可以使用mod_rewrite(Apache2的模塊)

這是我使用以便從我的舊域名重定向到我新的(同時保持鏈接謝靈運如www.domain1.com/link的的.htaccess /linkb.html成爲www.domain1 GR /link/linkb.html)

RewriteEngine On 
RewriteCond %(www\.)?domain1\.com$ [NC] 
RewriteRule .* http://www.domain1.gr%{REQUEST_URI} [R=301,L] 

谷歌mod_rewrite的更多信息(語法等)

+0

這正是我所追求的。但是,我無法讓它工作。請參閱編輯。 – 2011-01-05 17:48:53

+0

你是否收到「內部服務器錯誤」頁面?或者它根本不起作用? – Thordin9 2011-01-05 17:51:13

+0

它根本不起作用。我可以在我的.htaccess中檢查mod_rewrite是否被激活? – 2011-01-05 17:52:03

0

不能完全確定,但你可以只使用服務器代碼的404頁上給他們適當地重定向;這樣你可以收集統計數據,設置一個工具欄,或者你可能想要採取的任何其他行動。

0

.htaccess是關於授權,而不是重定向。我建議你看一下Apache的重定向支持(或者你使用的任何Web服務器),這更適合這個問題,並且確保你的.htaccess /授權符合目標。

0

這個規則應該這樣做:

RewriteRule ^awesome\.example(/.*)?$ http://www.awesome.example$1 [R=301,L] 
+0

對不起,它沒有。 – 2011-01-05 17:57:44

+0

@Ben Galler:哦,等一下,這個團隊應該是可選的。 – Gumbo 2011-01-05 18:01:25

+0

無法讓它工作。據我的網站酒店,mod_rewrite應該啓用... – 2011-01-05 18:23:00

0

檢查重定向& Apache中的RedirectMatch選項。對於簡單的情況,像你的,它比mod_rewrite簡單。

Redirect /awesome.com http://ww.awesome.com 

Redirect permanent /awesome.com http://ww.awesome.com 

現在,如果exam​​ple.com和awesome.com是相同的Apache服務器和同一虛擬主機上你也許mising命名基礎的虛擬主機的事情,你也許想使一些事情比簡單的已命名的基本虛擬主機定義更加複雜。