将域重定向到保留链接的新域

时间:2014-08-28 07:30:38

标签: php .htaccess mod-rewrite redirect http-redirect

好的,我有一个网站说oldwebsite.com.au和一个新网站说newwebsite.com.au

我需要重定向并保留所有链接,因此来自旧网站的流量。

所以我用它作为重定向(下面)。唯一的问题是我有几个页面的网址结构已经改变,我需要添加这些以分别重定向我试图在整个网站重定向之前添加重定向,但它似乎没有工作任何帮助将非常感谢。

#Redirects for individual url that changed. (Not working)
Redirect 301 /about-us.php https://newwebsite.com.au/about-us/
Redirect 301 /category/old-page https://newwebsite.com.au/new-page/


#Redirects for the whole site.
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} !=old.oldwebsite.com.au
RewriteCond %{HTTP_HOST} !^newwebsite\.com.au
RewriteRule (.*) https://newwebsite.com.au/$1 [R=301,L]

注意:如果我删除整个网站重定向,个人网址会重定向吗?... 注意:我也会重定向子域old.oldwebsite.com.au

2 个答案:

答案 0 :(得分:1)

不要将mod_alias规则与mod_rewrite规则混合使用。你的.htaccess是这样的:

Options +FollowSymLinks
RewriteEngine on

# skip subdomain from further rules:
RewriteCond %{HTTP_HOST} =old.oldwebsite.com.au
RewriteRule ^ - [L]

RewriteRule ^about-us\.php$ https://newwebsite.com.au/about-us [R=301,L,NE,NC]

RewriteRule ^category/old-page/?$ https://newwebsite.com.au/new-page/ [R=301,L,NE,NC]

RewriteCond %{HTTP_HOST} !^newwebsite\.com\.au$ [NC]
RewriteRule (.*) https://newwebsite.com.au/$1 [R=301,L,NE]

不要忘记删除所有Redirect规则。

答案 1 :(得分:0)

我不确定,但你可以试试这个

遵循重定向规则:

<rule name="Canonical Host Name" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^www\example.com" />
</conditions>
<action type="Redirect" url="http://www.example.com/{R:1}" redirectType="Permanent" />
</rule>