将网址从http://example.com/blog/重写为http://blog.example.com/

时间:2009-04-17 07:25:15

标签: regex apache .htaccess mod-rewrite

我应该使用RewriteRule(使用.htaccess / mod_rewrite)将http://example.com/blog/(带{1}}或不带)重定向到www

我正在使用以下内容,但获得重定向循环:

http://blog.example.com/

1 个答案:

答案 0 :(得分:6)

在您现有的规则中,您似乎有一些错误的方法,我认为不需要负面(即!)测试。

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com [NC]
RewriteRule ^/blog/$ http://blog.example.com/ [L,R=301]

但是,我建议您不要使用RewriteCond指令来检查主机名,只需确保VirtualHost的规则位于www.example.com右侧。

<VirtualHost ...>
ServerName www.example.com
ServerAlias example.com

RewriteRule ^/blog/ http://blog.example.com/ [L,R=301]
</VirtualHost>

(nb:假设blog.example.comwww.example.com实际上是独立的虚拟主机)