.htaccess如何仅将子域/文件夹重定向到子域

时间:2013-11-19 13:56:12

标签: regex apache .htaccess mod-rewrite redirect

我正在尝试在不同的地方找到答案,但我找不到完整的解决方案。

我为博客设置了文件夹。现在我们转到子域设置。下面显示的重定向功能完美。唯一不起作用的是当url是与文件夹结合的子域名时。没有重定向。

RewriteCond %{HTTP_HOST} ^(www\.)domain\.com$
RewriteRule ^blog/(.*)$ http://blog.domain.com/$1 [L,R=301,QSA]

RewriteCond %{HTTP_HOST} ^blog\.domain\.com$
RewriteCond %{REQUEST_URI} !blog/
RewriteRule ^(.*)$ blog/$1 [L,QSA]

www.domain.com/blog/some-url-here重定向到 blog.domain.com/some-url-here

当我尝试blog.domain.com/blog/some-url-此处它返回一个200的http状态,当我尝试重定向时,我得到一个不定式循环。

我错过了重定向吗?

1 个答案:

答案 0 :(得分:2)

在其他规则之上尝试这些规则:

RewriteCond %{THE_REQUEST} \s/blog/([^\s]*) [NC]
RewriteRule ^ http://blog.domain.com/%1 [L,R=301]

RewriteCond %{HTTP_HOST} ^blog\.domain\.com$
RewriteRule !^blog/ blog%{REQUEST_URI} [L,NC]