.htaccess重定向到子域名

12

我试图设置这样一种情况:当有人访问 website.com/blog/ 时,他们会被重定向到 blog.website.com

我之前在我的 .htaccess 文件中使用了以下代码来实现其他重定向(从 .net 到 .com):

Options +FollowSymLinks
RewriteEngine on  
RewriteCond %{HTTP_HOST} ^(www.|blog.)?website.net(.*) [NC]  
RewriteRule (.*) http://www.website.com/$1 [R=301,L]

可能与我在 Apache 配置文件中设置了 ErrorDocument 404 有关。

为了解决我的问题,我尝试了这个:

Options +FollowSymLinks
RewriteEngine on  
RewriteCond %{HTTP_HOST} ^(www.|blog.)?website.net(.*) [NC]  
RewriteRule (.*) http://www.website.com/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^(www.)?website(.com|.net)/blog/?$ [NC]
RewriteRule (.*) http://blog.website.com/ [L]

然而,这段代码没有起作用。我的错误文档仍在处理请求(/blog/目录不存在)。我尝试将这段新代码移动到apache配置文件中的ErrorDocument上面,但是发生了同样的事情。

毫无疑问,这是一个语法错误,任何帮助都将不胜感激 :)

2个回答

12

在您的website.com目录的根目录中的.htaccess文件中

RewriteEngine on
RewriteBase / 

RedirectMatch 301 ^/blog/(.*)$ http://blog.website.com/$1

6
尝试将以下内容添加到您的webiste.com站点根目录中的.htaccess文件中。
RewriteEngine on
RewriteBase / 

#if not already blog.website.com
RewriteCond %{HTTP_HOST} !^blog\.website\.com$ [NC] 
#if request is for blog/, go to blog.website.com
RewriteRule ^blog/$ http://blog.website.com [L,NC,R=301] 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接