大连做网站
首页 > 建站教程 > Rewrite规则怎么写之Apache篇

Rewrite规则怎么写之Apache篇

2016-12-21

  经常看到很多人求助,说他的IDC不支持控制面板做301怎么办,或者说问伪静态规则怎么写,所以写这篇博文,主要本文主要讨论在Apache下,进行编写Rewrite规则。

  首先,先说URL的重写规则怎么写。这个主要是用于做伪静态。重写规则是放在.htaccess文件下或Apache的配置文件

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

  RewriteEngine on

  RewriteBase /

  RewriteEngine on是代表开启rewrite,而RewriteBase / 是表示所有规则前都存在“/”,写了这条之后,你后面所有规则的开头,只需要写“^”就后了,但要注意的是,此规则仅在.htacess文件中被支持,如果是服务器配置文件,此规则会被忽略、不必写。

  在正是写规则前,先为大家讲一下重写中设计到的特殊字符的含义。

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

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

  ?代表前面0或1个字符

  ^代表字符串的开始位置

  $代表字符串结束的位置

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

  /将跟在其后的字符还原为字符本身,例如“/+”代表的就是“+”,而非其它意思。

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

  上面的例子中,^表示域名后来的URL的开始,$表示字符串结束,也就是域名后面的URL结束。[0-9]表示一个数字,因为只要URL存在,其必然存在一个id数字。紧接其后的+表示表示出现1个或多个数字。[0-9]+连在一起,表示字符以数字形式出现,数字范围为0-9,出现次数为1或多次。$表示字符串结束,?$表示在根域名后到域名结束,有0或1个字符。$1表示存在内存中的内容,也就是说首先个圆括号中的内容。[L]表示如果规则匹配就停止,否则需要继续运行剩下的规则,通常这个没必要深究。

  这个规则是将域名下搜有a 301 到 a/ 的URL下。规则是死的,重要的是大家要活学活用,相信熟练掌握rewrite规则后,你会发现网站所有的URL与返回码将会全部在你的掌控下!