.htaccess with dynamics subdomains

时间:2012-10-23 21:25:41

标签: .htaccess subdomain

我试图制作一个.htacces来模拟动态子域。 喜欢他的帖子: .htaccess: mod-rewrite; subdomain

但是我无法获得预期的结果。

我已多次阅读文档:apache

我没有问题:RewriteCond,RewriteRule,正则表达式。 但是我对子域有问题。

我有这个页面:tododiversion.es 而对于我的例子,我想要这个:

  

chr.tododiversion.es ==> tododiversion.es/chr /

我把.htaccess放在www文件夹中:www/ .htaccess

,文件夹“chr”位于:www/chr/

在我提出的htacces中

RewriteEngine On

# host starts with something else  
RewriteCond %{HTTP_HOST} ^([^\.]+)\.tododiversion\.es$  [NC]

# rewrite 
RewriteRule ^(.*)$ /chr  [L]

它不起作用..

我知道urlrewritting正在运行,因为我做了一个简单的测试。 我知道RewriteCond正在工作,因为我做了一个简单的测试。 我在我的计算机上尝试使用localhost和127.0.01而且它也没有用。

如果有人可以给我一些建议,那应该很棒! 克里斯

2 个答案:

答案 0 :(得分:0)

问题可能是apache没有正确配置来处理子域。确保将所有子域设置为转发到此目录,否则永远不会执行.htaccess。

<VirtualHost *:80>
ServerName domain.com
ServerAlias *.domain.com
DocumentRoot /var/www/domain.com
</VirtualHost>

请记住在更新配置文件后重新启动Apache。

有关参考,请参阅How to configure subdomains for Apache2 on Ubuntu?

答案 1 :(得分:0)

您需要在重写规则中包含$ 1,以便传递域之后的任何URL细节。

chr.tododiversion.es/page.html ==&gt; tododiversion.es/chr/page.html

根据您提供的链接,重写规则应如下所示:

# rewrite
RewriteRule ^(.*)$ /%1/$1  [L]