htaccess将旧链接重定向到新网站索引并手动重定向一些异常

时间:2014-12-23 09:23:50

标签: .htaccess redirect

我们创建了一个新网站,它具有与旧网站不同的页面结构。我们仍然希望将联系页面指向网站上的联系页面,将团队页面指向新页面,等等。

新网站位于另一个域名,且链接不一样 - 例如我们在www.example.com/contact上的旧网站上,现在我们有www.newexample.com/contact-us.

我希望能够像这样重要的网页进行手动重定向

Redirect 301 old_link new_link

并且手动重定向列表中未涵盖的所有页面都应重定向到新网站的索引。

这是可能的,还是更好的方法?

谢谢

3 个答案:

答案 0 :(得分:1)

您可以在旧文档根目录中设置此规则:

RewriteEngine On
#Redirect to new structure
RewriteRule ^contact$ http://www.newexample.com/contact-us [L,R=301]

#Redirect all to www.newexample.com:    
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteRule ^(.*) http://www.newexample.com/$1 [R=301,L]

您需要为新网站设置此内容:

#Redirect all 404 Errors to http://www.newexample.com
ErrorDocument 404 http://www.newexample.com

答案 1 :(得分:0)

您可以为每个旧网址RewriteCond %{REQUEST_URI} !(old_link) [NC]添加重写条件,然后设置一个重写规则,用于所有其他链接RewriteRule ^(|/|/(.*))$ new_link [R=301,L]

答案 2 :(得分:0)

另一种方法: 使用.htaccess将管理通过php

将所有请求重定向到php文件
<?
$url=$_SERVER['QUERY_STRING'];
$start= strrpos($url,'/')+1;

if ( strpos($url,"/old_structure/")!==false ) $newest="/new_structure";

$url=substr($url,$start);
$url=trim($url);
$domain="domain.com". $newest ."/$url";



Header( "HTTP/1.1 301 Moved Permanently" ); 
Header( "Location: http://$domain" ); 
die();
?>