2012-05-26 107 views
0

我見過數百個示例,但我無法將它們適用於我的案例。通過htaccess將子域重定向到特定的URL

我需要(通過htaccess的)從radio.mysite.com:8000重定向到www.mysite.com:8000/radio.pls

有人可以幫助嗎?謝謝!!

編輯:我試過幾件事情,但大多數是這樣的:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^radio\.mysite\.com:8000$ --// I also tried without the port which would be fine 
RewriteRule ^/$ http://www.mysite.com:8000/radio.pls [L] --// I don't know what the [L] is for 

結果是:與8000端口什麼都不做,我認爲這是因爲htaccess的(阿帕奇)只工作在端口80(這是正確的嗎?)。如果沒有8000端口,它只會顯示一些我不知道它在哪裏的頁面(是購買託管服務時的歡迎頁面),但它不是我的索引或類似的東西。謝謝!!

回答

0

該端口將位於變量%{HTTP_PORT}中。

RewriteEngine On 
# Match non-www 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
# Match port 8000 
RewriteCond %{HTTP_PORT} ^8000 
# And redirect to www with the correct port with the [R] flag 
RewriteRule ^/?$ http://www.mysite.com:8000/radio.pls [L,R] 
+0

嗨,謝謝,但它不起作用。我設置它,並嘗試http://radio.mysite.com:8000,它給了我404錯誤,而http://www.mysite.com:8000/radio.pls工程... – Diego

+0

@Diego因爲這是重定向,而不是內部重寫,腳本radio.pls必須實際上可以在www.mysite.com訪問的文檔根目錄上使用。你說mysite.com:8000/radio.pls有效,但www.mysite.com:8000/radio.pls是否有效?如果沒有,那麼你必須解決你的主機在哪裏www。指向。 –

+0

嗨邁克爾,謝謝你的回答!實際上,www和非www網址都可以正常工作,但不是重定向(radio.mysite ...)。 – Diego

0

嘗試:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^radio\.mysite\.com$ 
#RewriteCond %{HTTP_PORT} ^8000$ 
RewriteRule ^$ http://www.mysite.com:8000/radio.pls [R,L] 

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^radio\.mysite\.com$ 
#RewriteCond %{HTTP_PORT} ^8000$ 
RewriteRule ^$ /radio.pls [L] 
0

試試這個:

(在你的子域位於該文件夾的.htaccess文件將這個)
RewriteEngine On 
RewriteCond %{HTTP_HOST} ^subdomain.primarydomain.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www.subdomain.primarydomain.com$ [OR] 
RewriteCond %{HTTP_HOST} ^addondomain.com$ 
RewriteCond %{REQUEST_URI} ^/$ 
RewriteRule ^(.*)$ http://www.addondomain.com/ [R=301,L] 

將其切換爲無www。如果你希望這是你的主要領域。