2011-12-20 94 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