如何实现301永久重定向

作者:袖梨 2022-07-02

如何实现301永久重定向?

一、通过代码实现301永久重定向php 实例301转向

HTML网页无法实现301永久重定向。因为HTML文件一被读取,就已经返回表示一切正常的200状态码了。

比如,你要删除某个目录A,想实现访问http://www.111com.net/A/时跳转到http://www.111com.net

header(”HTTP/1.1 301 Moved Permanently”);
header(”Location:http://www.111com.net”);
exit();
?>

访问http://www.111com.net/A/其实就是访问http://www.111com.net/A/index.php,就会自动跳转到http://www.111com.net

有个技巧:如果http://www.111com.net 网站目录下同时存在index.html和index.asp,设置文档优先级html>asp时,输入http://www.111com.net访问到的是http://www.111com.net/index.html;设置文档优先级asp>html时,访问的是http://www.111com.net/index.asp.

二、Apache实现301永久重定向

Apache中的分布式配置文件“.htaccess”提供了针对每个目录改变配置的方法,即在一个特定的目录中放置一个包含指令的文件,其中的指令作用于此目录及其所有子目录。比如,在目录A下放.htaccess,写入代码:

redirect 301 /A http://www.111com.net 或
redirect permanent /A http://www.111com.net

访问http://www.111com.net/A/及其子目录时即可重定向到http://www.111com.net。若将整个网站或域名重定向到另一网站或域名,则可写入redirect 301 / http://www.111com.net,将.htaccess放在根目录即可。

如果要实现“批量重定向”,比如,把http://111com.net/a.html重定向到http://www.111com.net/a.html,把http://111com.net/b.html重定向到http://www.111com.net/b.html。。。等等,即把http://111com.net下的所有文件重定向到http://www.111com.net下的同名文件,则要用到mod_rewrite模块。在.htaccess中写入:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^111com.net [NC]
RewriteRule ^(.*)$ http://www.111com.net/$1 [L,R=301]

即可。

或将绑定的其他多个域名重定向到主域名:

RewriteEngine on
RewriteCond % ^111com.net$ [OR]
RewriteCond % ^bbs.111com.net$ [OR]
RewriteRule ^(.*)$ http://www.111com.net/ [R=301,L]

三、虚拟主机301永久重定向

如果你的网站空间是使用虚拟主机或合租空间,无法对WEB服务器(IIS、Apache)进行设置,可以利用子目录绑定实现301永久重定向。首先建立子目录A,然后把你要进行重定向的域名A绑到这个目录,在这个子目录里面建立一个index.php文件,写入上面介绍的代码。那么访问子目录A下的index.php也即访问域名A,就会跳转到绑定在其他子目录上的域名B。

相关文章

精彩推荐