.htaccess 重定向到子域

Posted

技术标签:

【中文标题】.htaccess 重定向到子域【英文标题】:.htaccess redirect to subdomain 【发布时间】:2012-03-09 04:51:20 【问题描述】:

我正在准备设置场景,如果有人访问 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 conf 文件中的 ErrorDocument 上方,但发生了同样的事情。

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

【问题讨论】:

【参考方案1】:

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

RewriteEngine on
RewriteBase / 

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

【讨论】:

【参考方案2】:

尝试将以下内容添加到您的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] 

【讨论】:

以上是关于.htaccess 重定向到子域的主要内容,如果未能解决你的问题,请参考以下文章

.htaccess:将主域重定向到https:// www,子域重定向到https://(不带www)

.htaccess - 将旧网站重定向到主域,但也将一些内容重定向到主域的子域

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

.htaccess 仅用于主页重定向到子域(OpenCart)

.htaccess 使用哈希重定向到子域 url

.htaccess - 将子域重定向到文件夹