2010-10-07 122 views
2

我有很多來自谷歌和stackoverflow的想法 - 但沒有一個是我正在尋找的。這裏是scenario-HTACCESS問題 - 域與子域

  1. 我已經買了從提供託管空間。我必須提供一個域名(讓abc.com)作爲該託管空間的主要域。

  2. 然後我發現我必須將該rimary域(abc.com)的所有內容直接放入文檔根目錄。那就是沒有像www/abc或www/abc.com這樣的目錄。

  3. 然後我Google搜索,發現很多.htaccess解決方案。我選擇了以下單

    RewriteEngine敘述在

    RewriteBase/

    的RewriteCond%{HTTP_HOST} abc.com

    的RewriteCond%{REQUEST_URI}!^/abc.com/(.*) [NC]

    重寫規則^(。*)$ /abc.com/$1

  4. 我剛粘貼上面在現有.htaccess文件的末尾行(帝發ULT)。 它工作正常。從那時起,我一直在使用www/abc.com目錄作爲我的abc.com域名。

  5. 最近我在abc.com域名中添加了一些子域名(讓xyz.abc.com)。但這對我來說很奇怪。所有子域名正在從abc.com/subdomain(例如,abc.com/xyz.abc.com)尋找其內容(例如:abc.com/xyz.abc.com)

  6. 這次我沒有找到谷歌解決方案(我可能錯過了它)。

有人幫我請 - 我身體不好。

編輯: 以下行均的WebRoot從一開始的.htaccess。之後,我已經添加額外的線的上方(3,4)

# -FrontPage- 

IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti* 

<Limit GET POST> 
order deny,allow 
deny from all 
allow from all 
</Limit> 
<Limit PUT DELETE> 
order deny,allow 
deny from all 
</Limit> 
AuthName abc.com 
AuthUserFile /home/abc/public_html/_vti_pvt/service.pwd 
AuthGroupFile /home/abc/public_html/_vti_pvt/service.grp\ 

再次編輯如所提到的: 還有一些其他的結構域(除了域的主abc.com)在相同的主機空間。這些域有一些工作子域。但是主域的子域並不像我上面解釋的那樣工作。

+0

你怎麼添加子域名的web服務器配置?另外,有'。htacces'在你添加了subd之後被修改了嗎? – methode 2010-10-07 19:45:19

+0

@methode:當我添加一個subdoamin沒有改變進入.htaccess – Sadat 2010-10-12 16:57:50

+0

好吧。子域名是否有效?即如果你去xyz.abc.com,你會得到預期的頁面嗎? 我在問這個,因爲某些web服務器(即那些被管理的/ cPanel)被配置爲從web-root的子目錄中提供子域,就像你所描述的那樣。 考慮到你的絕對路徑中有/ home/abc/public_html /,你的服務器是通過cPanel/WHM進行管理的,因此你所擁有的'問題'實際上是預期的行爲。 我相信你最好的選擇是完全禁止訪問abc.com/xyz/abc.com,或者只是將301重定向到子域。 – methode 2010-10-12 17:05:12

回答

3

變化

RewriteCond %{HTTP_HOST} abc.com 

RewriteCond %{HTTP_HOST} ^abc.com$ 

現在的規則,不要再匹配您的子域。

更新

# catch www.abc.com and abc.com (and wwwwwwwwwww.abc.com) 
RewriteCond %{HTTP_HOST} ^(w+\.)?abc\.com$ 
+0

非常感謝@toscho。我會在今晚檢查它,並讓你知道。 – Sadat 2010-10-21 06:12:45

+0

它工作正常,除了www.abc.com。當我去www.abc.com它顯示文件夾內容(因爲沒有索引文件)。 – Sadat 2010-10-22 18:40:30

+0

我已經添加了更好的RewriteCondition以匹配www前綴。 – fuxia 2010-10-22 19:34:02