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

Posted

技术标签:

【中文标题】.htaccess - 将旧网站重定向到主域,但也将一些内容重定向到主域的子域【英文标题】:.htaccess - Redirect old website to main domain but also some content to subdomain of the main domain 【发布时间】:2021-04-16 11:37:29 【问题描述】:

我想将旧域(https 和 www)重定向到主域。我需要将其重定向到主页和博客。但是,我想重定向到主页面的子域的旧站点上有 4 个页面。

它应该是什么样子:

Oldwebsite1.com -> mainwebsite2.com

Oldwebsite1.com/blog -> Mainwebsite2.com/blog

Oldwebsite1.com/category1 -> new.mainwebsite2.com/category1

Oldwebsite1.com/category2 -> new.mainwebsite2.com/category2 /// 等等...

像这样的典型代码会起作用还是我需要对其进行调整?

#Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)$ http://www.mainwebsite2.com/$1 [R=301,L]

【问题讨论】:

【参考方案1】:

根据您显示的示例,您能否尝试以下操作。请确保在测试 URL 之前清除浏览器缓存。这些也处理您主机名中的可选www

RewriteEngine ON
##For Oldwebsite1.com -> mainwebsite2.com
RewriteCond %HTTP_HOST ^(?:www\.)Oldwebsite1\.com$ [NC]
RewriteRule ^/?$ http://mainwebsite2.com [R=301,L]

##For Oldwebsite1.com/blog -> Mainwebsite2.com/blog
RewriteCond %HTTP_HOST ^(?:www\.)Oldwebsite1\.com$ [NC]
RewriteRule ^(blog)/?$ http://mainwebsite2.com/$1 [NC,R=301,L]

##For Oldwebsite1.com/category1 -> new.mainwebsite2.com/category1 OR Oldwebsite1.com/category2 -> new.mainwebsite2.com/category2
RewriteCond %HTTP_HOST ^(?:www\.)Oldwebsite1\.com$ [NC]
RewriteRule ^(category1|category2)/?$ http://new.mainwebsite2.com/$1 [NC,R=301,L]

【讨论】:

我认为 OP 想要 new.mainwebsite2.com for category1|category2 @anubhava,谢谢先生,我现在已经改了,干杯。 @Zuzka,您能否发布无效的示例网址,然后告诉我。 @Zuzka,好的,将第 8 行的规则更改为 RewriteRule (.*blog.*)/?$ http://mainwebsite2.com/$1 [NC,R=301,L] 一次怎么样?请让我知道情况如何。我当前的规则查看 uri 是否从 block 开始,但此规则将检查 uri 是否包含 block 然后执行重定向。 @Zuzka,如何使用以下两条规则更改第 8 行 RewriteCond %REQUEST_URI blog [NC] RewriteRule ^(.*)/?$ http://mainwebsite2.com/$1 [NC,R=301,L](尽管这些是在 cmets 中显示单行的 2 条不同的行)一次,让我知道。请确保您也将第 7 行的 ^(?:www\.)Oldwebsite1\.com$ [NC] 更改为您的实际域,干杯。

以上是关于.htaccess - 将旧网站重定向到主域,但也将一些内容重定向到主域的子域的主要内容,如果未能解决你的问题,请参考以下文章

重定向到主域

htaccess 将旧域重定向到新域

在Wordpress中将网站从子域移动到主域的问题

将任何子域重定向到主域上的页面

子域正在重定向到主域文件

从子域重定向到主域