【发布时间】:2016-09-05 18:10:09
【问题描述】:
由于重复的内容问题,我试图创建一系列正则表达式以用于规范标签(在 php 中)。
我的标题是动态的,并且规范的 url 当前设置为
<link rel="canonical" href="'. BASEHREF . $_SERVER['REQUEST_URI'].'" />
为了更好地展示我试图实现的目标,我将举一些例子。(数字是页码)。 例如
example.com/cars/1,2,etc canonical url points -> example.com (home page)
example.com/car/nissan canonical url points -> example.com (home page)
example.com/new-phones/1,2,3etc canonical url points -> example.com/new-phones/
所以基本上当 url 包含单词 cars,car + digit 或 word 时,我希望该页面规范 url 指向主页,并且当 url 包含 /new-phones/+a 数字指向其父目录时.
这是我到目前为止的代码,它只是从规范 url 中删除页码。
$url = BASEHREF.$_SERVER['REQUEST_URI'];
$parts = parse_url($url);
$scheme = $parts['scheme'];
$host = $parts['host'];
$path = $parts['path'];
$items = preg_split('/\//',$path,null,PREG_SPLIT_NO_EMPTY);
$thepage = $items[0];
$pagenumber = $items[1];
$canonical_url = ($pagenumber = '') ? $url : $scheme.'://'.$host.'/'.$thepage;
我确定我必须使用 if 条件,但我不擅长正则表达式。 提前致谢。
【问题讨论】:
标签: php regex preg-replace preg-match preg-split