我试图制作一个.htacces来模拟动态子域。 喜欢他的帖子: .htaccess: mod-rewrite; subdomain
但是我无法获得预期的结果。
我已多次阅读文档:apache
我没有问题:RewriteCond,RewriteRule,正则表达式。 但是我对子域有问题。
我有这个页面:tododiversion.es 而对于我的例子,我想要这个:
chr.tododiversion.es ==> tododiversion.es/chr /
我把.htaccess放在www文件夹中:www/ .htaccess
,文件夹“chr”位于:www/chr/
:
RewriteEngine On
# host starts with something else
RewriteCond %{HTTP_HOST} ^([^\.]+)\.tododiversion\.es$ [NC]
# rewrite
RewriteRule ^(.*)$ /chr [L]
它不起作用..
我知道urlrewritting正在运行,因为我做了一个简单的测试。 我知道RewriteCond正在工作,因为我做了一个简单的测试。 我在我的计算机上尝试使用localhost和127.0.01而且它也没有用。
如果有人可以给我一些建议,那应该很棒! 克里斯
答案 0 :(得分:0)
问题可能是apache没有正确配置来处理子域。确保将所有子域设置为转发到此目录,否则永远不会执行.htaccess。
<VirtualHost *:80>
ServerName domain.com
ServerAlias *.domain.com
DocumentRoot /var/www/domain.com
</VirtualHost>
请记住在更新配置文件后重新启动Apache。
答案 1 :(得分:0)
您需要在重写规则中包含$ 1,以便传递域之后的任何URL细节。
chr.tododiversion.es/page.html ==&gt; tododiversion.es/chr/page.html
根据您提供的链接,重写规则应如下所示:
# rewrite
RewriteRule ^(.*)$ /%1/$1 [L]