301重定向的正则表达式
Regular expressions for 301 redirect
如何使用正则表达式将 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
。
数字与 \d
匹配,而不是 /d
。要匹配至少 1 个数字,您需要添加 +
量词。要捕获数字以便将它们复制到替换项 URL,您需要在其周围设置一个捕获组。
您还需要转义某些在正则表达式中具有特殊含义的字符:.
和 ?
.
http://example\.com/news\.php\?id=(\d+)&page=(\d+)
$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=&page=';
echo preg_replace($pattern, $replacement, $string);
如何使用正则表达式将 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
。
数字与 \d
匹配,而不是 /d
。要匹配至少 1 个数字,您需要添加 +
量词。要捕获数字以便将它们复制到替换项 URL,您需要在其周围设置一个捕获组。
您还需要转义某些在正则表达式中具有特殊含义的字符:.
和 ?
.
http://example\.com/news\.php\?id=(\d+)&page=(\d+)
$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=&page=';
echo preg_replace($pattern, $replacement, $string);