Rewrite轨则怎么写之Apache篇 2012-08-14 来源: 卓杰科技(www.zhuojie.net) 浏览:

首先,先说URL的重写轨则怎么写。这个主若是用于做伪静态。重写轨则是放在.htaccess文件下或Apache的设置装备摆设文件(httpd.conf或sites_conf目录里的一些特定的网站设置装备摆设文件),此文首要谈判.htacess文件(其实都差不多)。

打开你的.htacess文件,开首内容如下:

RewriteEngine on

在恰是写轨则前,先为巨匠讲一下重写中设计到的非凡字符的寄义。

RewriteBase /

*代表前面0或更多个字符

RewriteRule ^(.*?)/?index\.html$/$1? [L,R=301]

\将跟在厥后的字符还原为字符自己,例如“\+”代表的就是“+”,而非其它意思。

+代表前面1或更多个字符

?代表前面0或1个字符

RewriteEngine on是代表开启rewrite,而RewriteBase / 是暗示所有轨则前都存在“/”,写了这条之后,你后面所有轨则的开首,只需要写“^”就后了,但要注重的是,此轨则仅在.htacess文件中被撑持,如不美观是处事器设置装备摆设文件,此轨则会被忽略、不必写。

RewriteEngine on

$代表字符串竣事的位置

上述轨则是将AAA.com 301 到 www.AAA.com,符号的寄义相信不必再做诠释了。

^代表字符串的起头位置

。为通配符,代表任何字符

^在方括号里暗示非的意思。例如[^.]代表非通配符。

那么假如我们但愿将“http://www.zhuojie.net/?/b.php?id=1″此类URL伪静态为“http://www.zhuojie.net/?/b/1″的形式,则轨则如下:

RewriteRule ^b/([0-9]+)/?$/b.php?id=$1 [L]

膳缦沔的例子中,^暗示域名后来的URL的起头,$暗示字符串竣事,也就是域名后面的URL竣事。[0-9]暗示一个数字,因为只要URL存在,其必然存在一个id数字。紧接厥后的+暗示暗示呈现1个或多个数字。[0-9]+连在一路,暗示字符以数字形式呈现,数字规模为0-9,呈现次数为1或多次。$暗示字符串竣事,?$暗示在根域名后到域名竣事,有0或1个字符。$1暗示存在内存中的内容,也就是说第一个圆括号中的内容。[L]暗示如不美观轨则匹配就遏制,否则需要继续运行剩下的轨则,凡是这个没需要深究。

那除非伪静态外,有时辰我们还需要操作.htacess进行301重定向。符号寄义不变,举例如下:

经常看到良多人乞助,说他的IDC不撑持节制面板做301怎么办,或者说问伪静态轨则怎么写,所以写这篇博文,首要本文首要谈判在Apache下,进行编写Rewrite轨则。

RewriteCond %{HTTP_HOST} ^AAA\.com$ [NC]

那么经由这两条轨则,你应该有所启发了,如不美观你的网站做改版,导致你的URL结构发生了转变,怎么办?谜底很简单,我们可以操作.htacess文件,经由过程写rewrite轨则,将老的URL 301到新的URL上。

这个轨则是将域名下搜有a/index.html 301 到 a/ 的URL下。轨则是死的,最主要的是巨匠要活学活用,相信谙练把握rewrite轨则后,你会发现网站所有的URL与返回码将会全数在你的掌控下!

RewriteRule ^(.*) http://www.zhuojie.net/?/$1 [R=301,L]

本文首发天津seo:http://www.zhuojie.net/?/135.html 转载请注明。

在线咨询

020-89202380