南京seo如何编写网站改版正则规则

  • A+
所属分类:SEO培训

规则由2部分组成:旧网址的正则表达式、新网址的正则表达式。

正则标准说明:支持PCRE规范的表达式。

以下举例说明:

改版前url:example.com/bbs123/?a=2&b=137

改版后url:bbs123.yoursite.com/thread-137-2.html

针对这一类长相的url改版

首先使用正则描述改版前旧url规则:^example\.com/([a-z0-9]+)/\?a=([0-9]+)&b=([0-9]+)$

再用字符串和捕获引用描述改版后新url规则: \1.yoursite.com/thread-\3-\2.html

注:其中\为转义字符,其后可以跟随数字0-9以表示一个对捕获字符串的引用,或者跟随另一个以表示一个字符’’,其余字符皆不可以跟随在一个单独的\之后。其余字符都表示他们自身。

提交以上正则规则后,如改版前url

example.com/bbs123/?a=2&b=137

会匹配这条规则,并产生如下的捕获对应关系

bbs123=> \1

2=> \2

137=> \3

进而得到最终的改版后url长相为

bbs123.yoursite.com/thread-137-2.html

请注意如下的url将不在本规则覆盖范围内:

example.com/BBS123/?a=2&b=137

原因:规则配置的第一个捕获中指定可通配[a-z0-9]但未包括大写字母

example.com/bbs123/?a=&b=137

原因:规则配置的第二个捕获指定+匹配至少要有一个字符

example.com/bbs123/?a=2&b=137&c=45

原因:规则最后指定$表示断言url应该到此结束,否则不匹配

附PCRE规则常用字符,更多可到标准库中进行了解。

^:表示字符串开始,即在此之前不能再有任何字符

$:表示字符串结束,即在此之后不能再有任何字符

?:表示之前的元素可以出现0次或1次

*:表示之前的元素可以出现0次或多次

+:表示之前的元素可以出现1次或多次

{数字}:表示之前的元素必须出现数字次

{数字,}:表示之前的元素需要出现至少数字次

{数字1,数字1}:表示之前的元素出现次数不少于在数字1且不大于数字2

[一些字符]:表示一个在一些字符内的字符,一些字符部分可以用-进行简记,例如[abcde]等同于[a-e]

.:表示一个任意字符

\:转义字符,当上面有特殊含义的字符以及\本身需要表示其字面值而非特殊含义时,可以用特殊字符表示这个特殊字符本身,例如?表示一个?而非\出现0次或一次。转义字符还可以和一些非特殊字符使用,表示一个特殊含义,见后续的描述

\d:表示一个数字[0-9]

\w:表示一个单词[a-zA-Z0-9_]

(子模式):一般?和*等计数字符只对前一个元素生效,当需要对一个子模式生效时,需要加上括号。同时,括号内子模式所匹配的字符串,会作为捕获存在,后续可以引用,计数方式为“从左至右每一个加括号的子模式依次被编号为捕获1、2、3、4等”。整个规则本身匹配部分也是一个捕获,记为0号捕获

|:表示之前的子模式和之后的子模式至少有一个匹配,例如a(bc|de)f可以匹配adef和abcf

  • 网站优化咨询
  • 这是我的微信扫一扫
  • weinxin
  • SEO培训报名
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: