2011-12-03 183 views
0

我知道有很多這樣的問題,但我找不到合適的答案。使用www重定向子域名。到沒有www

我在與虛擬主機共享的外殼。

我有一個子域 - 「xyz.abc.com」。 問題是,當我輸入一個額外的「www」。在它之前即「www.xyz.abc.com」,它重定向到託管外殼的根網站,即「www.abc.com」而不是打開「xyz.abc.com」。

我已經聯繫了管理員。他說他不能改變重定向設置,因爲他將不得不重寫2000行APACHE服務器代碼。

我試圖改變.htaccess文件在我的public_html目錄即「/home/usr/public_html/.htaccess」包括這樣的:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 

這並沒有幫助。

我試着在「/home/usr/.htaccess」添加一個.htaccess。這也不起作用。

我無法在「/ home」添加任何文件。

管理員有沒有簡單的方法。改變這個重定向問題。

Most people tend to add a "www." before any web address. 

回答

0

默認的虛擬主機(在這種情況下,顯然abc.com的主站點)將是回答對域服務器獲取請求,但不知道的人。在你的情況下,服務器知道xyz.abc.com去你的網站。但是,從來沒有聽說過www.xyz.abc.com。並且由於它沒有,請求會轉到默認站點,該站點可能會自己的301反彈到它預期的站點(顯然是www.abc.com)。

爲了解決這個問題,假設主機不願意修改自己的網站爲你(當然,假設域名www.xyz.abc.com指向同一服務器xyz.abc.com),需要有人添加www.xyz.abc.com*.xyz.abc.com添加到您網站的域名別名列表中。如果服務器設置得當,因爲託管,這是一行ServerAlias *.xyz.abc.com)在該網站的配置。 2000行相當於整個中小容量Web服務器的Apache配置,包括十幾個單獨的基於名稱的虛擬主機。如果管理員不誇張,那麼他們基本上告訴你,該服務器不是爲真正的商業級網絡託管而設置的 - 他們可能在做一個俗氣的大衆虛擬主機,不能爲個人量身定製用戶。

如果您不能讓管理員爲您修復服務器別名,另一種方法是從提供「URL轉發」的註冊商獲取域名。如果設置正確,那會將您的網域指向只重定向至xyz.abc.com的網站。這有點難看,但只要網站中的所有鏈接都轉到xyz.abc.com(某些URL轉發器可能不注意URL的資源部分,並且可能會將所有內容重定向到/),它就會起作用。它不需要管理員做任何事情。

+0

謝謝您的回覆。有沒有其他的選擇。在通知管理員之前,我想知道所有選項。去嘗試一下。這是一個非常好的免費外殼主機,所以我不能多問。管理員是個好人。 – dams

+0

@dams:已更新爲包含不需要管理員執行任何操作的解決方案。 :) – cHao