如何更改所有子域以从各自的子目录中读取不同的内容?

时间:2010-12-17 13:02:58

标签: apache .htaccess redirect wildcard-subdomain

我已将DNS配置为接受任何子域(通配符*),但我无法将所需内容反馈给浏览器。

我希望每个子域都返回相对内容,该内容位于我服务器的public_html路径中的同名子目录中。

例如,example.domain.com/picture.jpg实际上会在public_html/example/picture.jpg

处请求该文件

目前我已经测试了后面的.htaccess代码,但它不起作用:

RewriteCond %{HTTP_HOST}   ^(.*)\.domain\.com$ [NC]
RewriteRule ^(.*)$         %1/$1 [L]

此代码和类似测试可以基于子域(%1)重定向,但请求字符串($ 1)似乎是问题。

2 个答案:

答案 0 :(得分:1)

也许你可以看看mod_vhost_alias模块:

http://httpd.apache.org/docs/2.0/mod/mod_vhost_alias.html

答案 1 :(得分:0)

尝试以下方法:

    RewriteCond %{HTTP_HOST} ^([0-9a-z-]+).domain.com [NC]
    RewriteRule ^/(.*) http://domain.com/%1/$1 [L]

我没有对此测试,但我使用类似的代理规则:

RewriteCond %{HTTP_HOST} !^domain.local [NC]
RewriteCond %{HTTP_HOST} ^([0-9a-z-]+).domain.com [NC]
RewriteRule ^/(.*) http://domain.local/%1/$1 [P]