301重定向的正则表达式

时间:2017-12-07 22:51:38

标签: regex redirect regular-language

如何使用正则表达式将http://example.com/news.php?id=268&page=25http://example.com/news.php?id=X&page=Y等所有网页重定向到其他网页?

我尝试使用http://example.com/news.php?id=/d&page=/d

2 个答案:

答案 0 :(得分:1)

数字与\d匹配,而不是/d。要匹配至少1位数,您需要添加+量词。要捕获数字以便将它们复制到替换URL,您需要一个捕获组。

您还需要转义在正则表达式中具有特殊含义的某些字符:.?

http://example\.com/news\.php\?id=(\d+)&page=(\d+)

答案 1 :(得分:0)

$string = 'http://example.com/news.php?id=268&page=25';
$pattern = '/^[^\?]+\?id=(\d+)&page=(\d+)$/';
$replacement = 'https://mynewdomain/with/too/many/subpaths/page.php?id=$1&page=$2';
echo preg_replace($pattern, $replacement, $string);