您现在的位置是:首页 > PHP正则

李清波 2014-06-26 PHP正则 42116 复制当前网址

htaccess实现301重定向正则表达式

    详细的步骤我就不在这里一一说说了,简单的列一些说明,让大家大概知道每一个通配符是干嘛的,大家知道就行了。


下面还是以我的网站:http://www.liqingbo.cn来做例子


(.+) 对应的是任意字符(包括汉字、英文字母等)

(\d+)对应的是任意数字(仅仅是阿拉伯数字)

$1 $2 $3 是前面出现过的变量的再次引用(相当于参数)


重定向语句:

示例一:

RedirectMatch 301 ^/index\.php/News/show/aid/(\d+)$ /news/aid-$1.html


访问:http://www.liqingbo.cn/index.php/News/show/aid/1

跳转:http://www.liqingbo.cn/news/aid-1.html


这里的地址,前面为旧地址,后面为跳转的目标地址。

(\d+)为参数(数字)

$1为目标地址的参数(自动匹配)


示例二:

RedirectMatch 301 ^/news/(\d+)/(\d+)\_(\d+)\.html$ /news/aid-$2.html

访问:http://www.liqingbo.cn/news/201406/888_1.html

跳转:http://www.liqingbo.cn/news/aid-888.html


示例一和示例二差不多,不一样的是示例二有多个(\d+)数字目录。

而我们如何来匹配真正的参数,而不是数字目录呢。

按照$1,$2,$3来区分,每一个(\d+)对应的是一个$和相应的数字。

比如示例二,如果中间那个(\d+)为参数的话,aid-后面应该写着$2来对应



(.*)可以理解为最后的文章名称或者ID,

这四个变量分别可以赋予编号$1,$2,$3,$4。

(.*)和$4.html之间的那个$可以理解为老网址和新网址之间的分割。


注意,$和后面的新网址之间有一个空格。而且,如果原网址最后有/的话,在$之前也必须有一个/


转载注明来源:http://www.liqinbo.cn/


文章来源:https://liqingbo.com/blog-312.html

评论