如何使用正则表达式将http://example.com/news.php?id=268&page=25
和http://example.com/news.php?id=X&page=Y
等所有网页重定向到其他网页?
我尝试使用http://example.com/news.php?id=/d&page=/d
。
答案 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);