以上固定链接会重新发送到我的网页:
page.php?permalink=events/foo
page.php?permalink=events/foo/
page.php?permalink=ru/events/foo
page.php?permalink=ru/events/foo/
events
是动态的,可以是specials
或packages
。
我的困境基本上是;我需要按顺序检测一个空链接,以便在以下情况下为机器人提供无索引元标记:
page.php?permalink=events
page.php?permalink=events/
page.php?permalink=ru/events/
page.php?permalink=ru/events
我不能使用[a-zA-Z]+\/?(.+)/
这样的简单模式,因为它不适用于i18n永久链接。
使用$_GET['permalink']
作为永久链接的引用,我可以使用哪种正则表达式检测到这种情况?并避免误报?
更新
空链接表示“events /”部分后面没有片段。这些是空的:
page.php?permalink=events
page.php?permalink=events/
page.php?permalink=ru/events/
page.php?permalink=ru/events
答案 0 :(得分:1)
我认为你很接近:
$pattern = '#^(?:[a-z]{2}/)?[a-z]+/(.+)/$#i';
说明:
# - regex start ^ - start-of-string anchor (?: - non-capturing group (I18N) [a-z]{2} - 2 letter language code / - a slash )? - end non-capturing group, make optional [a-z]+ - any letter a-z, multiple times (event) / - a slash (.+) - group 1: any character, multiple times / - a slash $ - end-of-string anchor #i - regex end, make case-insensitive