2011-12-20 70 views
2

我有一個通配符DNS記錄,允許所有形式的* .domain.com,另外我在同一臺機器上指向幾個不同的域,並使用重寫規則將請求指向子文件夾取決於請求源的URL。htaccess並從HTTP_HOST中刪除子域

例如domain1.com點/網站/文件夾/域1,domain2.com分/網站/文件夾/域2

我的問題是,我使用了Apache VAR HTTP_HOST在這個規則,其中包含子域,以便sub1.domain1.com指向/sites/folder/sub1.domain1.com併爲每個域有數百個子域,因此無法創建所有這些文件夾的可能性。

我的問題:如何從HTTP_HOST變量中刪除所有子域?這是規則集的樣子迄今:

RewriteRule ^file.xml$ sites/%{HTTP_HOST}/file.xml [L] 

其中,工作到一個子域包含在URL ...

回答

1

要限制你的規則只是mydomain.com(即無子域)添加[重寫之前RewriteCond指令如下

RewriteCond %{HTTP_HOST} ^[^\.]+\.com$ [NC] 
RewriteRule ^file.xml$ sites/%{HTTP_HOST}/file.xml [L] 

編輯: 允許任何域,但沒有子域

+0

這將很好地工作,如果我不需要這樣做是爲了大量域名,所有這些域名都指向同一臺機器。在這個例子中,mydomain.com可以是幾個不同域中的任何一個。 – Jackson 2011-12-20 20:03:57

+0

上面應該爲anydomain.com工作,其中anydomain可以是任何東西 – 2011-12-20 20:11:46

+0

這看起來好像會起作用,但我無法讓RewriteCond產生任何效果。它仍然包含路徑中的子域,但沒有找到文件。也許我需要看看Apache的配置... – Jackson 2011-12-20 21:18:10