2011-10-19 71 views
4

我想將多個域重定向到不同的子目錄。例如:如何使用Apache將多個域重定向到不同的子目錄

如果訪問者使用的域名爲www.cookie.com,該域名具有HTTP重定向至www.mainme.com,那麼當訪問者到達那裏時,Apache會檢測域並將其重定向到mainme.com/cookie

相同的puppy.com。如果它被HTTP重定向到mainme.com,當用戶到達那裏時,它會被重定向到mainme.com/puppy

這可以在.htaccess中完成嗎?

將Linux作爲服務器使用/ var/www作爲web文件夾。

現在不使用虛擬主機,但學習如何去做。

回答

4

我真的不知道你的

被轉發到www.mainme.com意思

如果獲得與轉發HTTP重定向您需要更改重定向滿足您的需求(所以請在末尾附上/cookie/puppy)。

如果您的站點共享您需要將此代碼放在您的.htacces它同樣的DocumentRoot:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(www\.)?cookie\.com$ 
RewriteRule ^(.*)$ http://www.mainme.com/cookie? [R,L] 
RewriteCond %{HTTP_HOST} ^(www\.)?puppy\.com$ 
RewriteRule ^(.*)$ http://www.mainme.com/puppy? [R,L] 

編輯: 所以你可能有HTTP,引用者爲線索,其中用戶來自。試試這個:

RewriteEngine On 
RewriteCond %{HTTP_REFERER} ^http[s]?://(www\.)?cookie\.com(.*)?$ 
RewriteRule ^(.*)$ http[s]?://www.mainme.com/cookie? [R,L] 
RewriteCond %{HTTP_REFERER} ^http://(www\.)?puppy\.com(.*)?$ 
RewriteRule ^(.*)$ http://www.mainme.com/puppy? [R,L] 
+0

我的意思是說,比如我買puppy.com。然後我告訴域名賣家將這個域名轉發給mainme.com。所以當用戶去puppy.com時,他會被重定向到mainme.com。正是在這一部分,我希望apache能夠看到,如果用戶從puppy.com獲取到mainme.com,那麼它應該將它們重定向到maineme.com/puppy。 –

0

我希望我理解你的權利,但如果通過「轉發」你的意思是HTTP重定向,那麼你說的話的其餘部分將無法正常工作。如果您已經通過將所有信息重定向到www.mainme.com而丟棄了這些信息,那麼Apache無法檢測該域名。 (HTTP引用不可靠,因爲它可以關閉(我已經關閉了),但我不確定它的意義是否與重定向一致,甚至是您需要的,或者是否跨瀏覽器一致。)

我不確定你的意思是「告訴域名賣家」。是那些人,還是僅在您的註冊商控制面板中自行編輯設置?但我想,無論哪種方式,如果你可以告訴他們做一件事,你可以告訴他們做別的事情,所以:

最簡單的解決方案可能是重定向到不同的URL而不是全部到相同的URL。也就是直接訪問www.mainme.com/sitename。或者,如果您只能轉發到域名而不是完整的網址,請爲每個域名創建一個子域名:sitename.mainme.com,如果您想將其轉到www.mainme.com/,可以再次重定向。站點名。

另一種方法是將每個域的IP設置爲您的mainme.com服務器,並將它們全部作爲虛擬主機正常託管。他們可以重定向,如果你想,但你也可以直接從cookie/puppy/etc.com提供內容。

相關問題