Url伪静态就是重写Url规则,把当前地址解析成另一种真实的方式进行访问网站。使用伪静态可使Url地址更加简短、美观。
如原来URL地址为 http://www.abc.com/index.php?m=content&c=news&a=list&id=10,这一长串地址经过URL伪静态设置后,可通过 http://www.abc.com/news/list/10.html 来访问同样的网页。
Url伪静态中常用的正则表达式:
. 换行符以外的所有字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
设置Url伪静态规则时,前面的地址中变量用( )包括,( )中的内容叫原子组;后面地址中用$1、$2、$3……来引用前面的()中的原子组。如前面第一个()中的内容,后面就用 $1 引用;前面第二个()中的内容,后面用 $2 引用……依次类推。
具体方法:在网站根目录(入口文件所在目录)下,新建 .htaccess 文件,开启url重写规则,将伪静态url规则与真实url一一对应,后重启Apache。如:
RewriteEngine on
RewriteRule ^news/list/([0-9]+)/$ index.php?m=content&c=news&a=lists&id=$1
RewriteRule ^news/list/([0-9]+)/([0-9]+)\.html$ index.php?m=content&c=news&a=lists&id=$1&page=$2
这样就设置了解析规则为:
http://www.xx.com/news/list/2.html
——>
http://www.xx.com/index.php?m=content&c=trends&a=list&id=2
http://www.xx.com/news/list/10/101.html
——>
http://www.xx.com/index.php?m=content&c=trends&a=list&id=10&page=101