破阶

乘风破浪会有时,直挂云帆济沧海

Apache环境下.htaccess伪静态301跳转(www与不带www)和PHP开启伪静态的方法

今天公司有一个网站要做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文件的常见的用法。

点赞

2003年你错过了淘宝红利,2009年你错过了微博红利,2013年你错过了公众号红利,2018年你错过了抖音红利,2020年的视频号红利,你绝对不能再错过!扫码进行学习。

发表评论

邮箱地址不会被公开。 必填项已用*标注