301重点向一直是很多seoer都接触过的,我相信很多站在在做301的时候只是去网上找下相关规则,然后改下,可以说很多人并不知道规则的意思,今天本人以“Apache服务器”和“IIS服务器”为例就给大家分享下,如有不对,还请原谅。
如果网站服务器是Apache,在.htaccess文件开始处加入一下规则(如果没权限修改, 请联系服务提供商协助修改):
RewriteCond %{http_host} ^domain.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
{HTTP_HOST}是服务器变量
^是匹配输入字符串的开始位置。
$是匹配输入字符串的结束位置。
R=301就是执行永久重定向,由于R还有302的意思,所以这这里强调下R=301,
L是规则结束的意思
一个最常用的正则就是(.*)。它含有两个元素:一是“点”,表示任意字符;二是“星”,表示以前的全部字符。所以(.*)会匹配{REQUEST_URI}的所有字符。{REQUEST_URI}是URL中出去域名以及“?”符号的所有查询字符,也是Apache 重写技术尝试匹配的字符。
[NC]告诉Apache服务器忽略正则中的大小写,它经常被用到{HTTP_HOST}服务器参数上,因为域名里面是不会区分大小写的;
如果网站服务器是IIS,要使用ISAPI_Rewrite组件,在httpd.ini文件开始处加入以下规则:
RewriteCond Host: ^domain\.com$
RewriteRule (.*) http\://www\.domain\.com$1 [R,I]
^是匹配输入字符串的开始位置。
$是匹配输入字符串的结束位置。
(.*)会匹配{REQUEST_URI}的所有字符。
I是不管大小写强行指定字符匹配,这个FLAG影响RewriteRule指令和相应的RewriteCond 指令。
R是强制服务器对客户端发出重定向指示即时应答,提供目的URl的新地址,重定向规则经常是最后规则。
\将下一个字符标记为一个特殊字符、或一个原义字符、或一个 后向引用、或一个八进制转义符。
评论(0人参与,0条评论)
发布评论
最新评论