htaccess重定向301没有子域

时间:2016-05-01 09:12:48

标签: apache .htaccess redirect mod-rewrite

我有一个小问题需要.htaccess

来解决

我想将所有旧网站重定向到新网站。 但是,某些链接必须重定向到新网站的特定 URL 以及新域主页上的所有其他链接。 例如:

url 1 - www.old.com/category-A/article-name-A
url 2 - www.old.com/category-B/article-name-B
url 3 - www.old.com
url 4 - www.old.com/subUrl1
url 5 - www.old.com/subUrl2

url 1 - www.new.com/article-new-A
url 2 - www.new.com/category-B/article-new-B
url 3 - www.new.com
url 4 - www.new.com
url 5 - www.new.com

对于前两个链接,我使用此代码并且它完美地运行

redirect 301 /category-A/article-name-A www.new.com/article-new-A
redirect 301 /category-B/article-name-B www.new.com/category-B/article-new-B

问题出在其他人身上。 我希望网站的所有其他子域都被重定向到新的主页,而没有 URL的第二部分 / subUrl1 ),因此您没有 404消息

如果我使用

redirect 301 / www.new.com

我有这个结果:

url 3 - www.new.com
url 4 - www.new.com/subUrl1 (404 page)
url 5 - www.new.com/subUrl2 (404 page)

如何为所有其他链接创建常规重定向?

谢谢。

编辑: 添加问题

我有一个包含更多链接类型的子文件夹:

domain.com/sub/link1
domain.com/sub/link2
domain.com/sub/link3
domain.com/sub/link4
domain.com/sub/link5
domain.com/sub/link6

如果我想某些链接有自定义重定向,而所有其他重定向到主页?

示例:

redirect 301 domain.com/sub/link1 /sub2
redirect 301 domain.com/sub/link2 /sub3/article1
redirect 301 domain.com/sub/link3 /sub2
other domain.com/sub/ to homepage

1 个答案:

答案 0 :(得分:0)

您可以使用以下内容:

#redirect the main site
redirect 301 /category-A/article-name-A www.new.com/article-new-A
redirect 301 /category-B/article-name-B www.new.com/category-B/article-new-B

#redirect any other domain
RewriteEngine on
RewriteCond %{HTTP_HOST} !^(www\.)?olddomain.com$
RewriteRule ^(.*)$ http://newdomain.com [L,R,NE]

rewriteRule会将所有其他域名(www.olddomain.com除外)重定向到http://newdomain.com