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);