今天公司有一个网站要做301跳转,之前网站有做过301跳转的,找了一下也花了些时间,特整理出来方便下次使用,也希望能帮到看到这个博文的朋友。
一般而言,我们使用的301跳转就是WWW与不带WWW域名之间的跳转,用行话说就是权重要归一。要实现伪静态很简单,第一、要空间(或者服务器)支持伪静态的功能,第二、只需要在网站根目录有.htaccess文件就可以了。
一、配置httpd.conf让空间支持伪静态
在apache的conf文件中,打开httpd.conf
1、把文档中所有的AllowOverride None全部的都给换成AllowOverride All
2、去掉下面这句话前面的注释“;”
LoadModule rewrite_module modules/mod_rewrite.so
3.重启apache
二、htaccess 301伪静态写法
1)将不带WWW的域名转向到带WWW的域名下:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^mobanyuan.net[NC]
RewriteRule ^(.*)$ http://www.mobanyuan.net/$1 [L,R=301]
2) 将带WWW的域名转向到不带WWW的域名下:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^mobanyuan.net$ [NC]
RewriteRule ^(.*)$ http://mobanyuan.net/$1 [L,R=301]
3)重定向到另一个域名:
Options +FollowSymLinks RewriteEngine on RewriteRule ^(.*)$ http://www.newdomain.com/$1 [L,R=301]
4)使用正则进行301重定向,实现伪静态:
Options +FollowSymLinks RewriteEngine on RewriteRule ^products-(.+)\.html$ products.php?id=$1将products.php?id=123这样的地址转向到products-123.html
5)二级域名指向指目录 如将en.mobanyuan.net指向 /en子目录
RewriteCond %{HTTP_HOST} ^en.mobanyuan.net [NC]
RewriteRule ^(.*) /en
三、Apache下vhosts.conf中配置301重定向
为实现URL规范化,SEO通常将不带WWW的域名转向到带WWW域名,vhosts.conf中配置为:
<VirtualHost *:80> ServerName www.mobanyuan.net DocumentRoot /home/mobanyuan.net </VirtualHost> <VirtualHost *:80> ServerName mobanyuan.net RedirectMatch permanent ^/(.*) http://www.mobanyuan.net/$1 </VirtualHost>
在下一篇文章我们将陆续整理.htaccess文件的常见的用法。

