Regex 301重定向的正则表达式

Regex 301重定向的正则表达式,regex,redirect,regular-language,Regex,Redirect,Regular Language,如何重定向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。要匹配至少一个数字,您需要添加+量词。要捕获这些数字以便将其复制到替换URL,需要在其周围建立一个捕获组 您还需要转义某些在正则表达式中具有特殊含义的字符:和? h

如何重定向
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
。要匹配至少一个数字,您需要添加
+
量词。要捕获这些数字以便将其复制到替换URL,需要在其周围建立一个捕获组

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

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

它看起来像一个简单的模式,您只需对数字使用
(\d+)
。有什么问题吗?StackOverflow希望您这样做,我们也一样。请更新您的问题,以显示您已在某个应用程序中尝试过的内容。有关更多信息,请参阅,并使用:)抱歉,我忘了提及我曾尝试在中使用/d模式,但我不确定syntaxIt的反斜杠是否正确,而不是正斜杠。任何正则表达式教程都应该显示正确的语法。您需要
+
来匹配多个数字。并在其周围放置一个捕获组,以便您可以将号码复制到替换URL。
$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);