http://example.com/news.php?id=268&page=25
とhttp://example.com/news.php?id=X&page=Y
のようなすべてのページを正規表現を使用して別のページにリダイレクトするにはどうすればよいですか?301リダイレクトの正規表現
http://example.com/news.php?id=/d&page=/d
を使ってみました。
http://example.com/news.php?id=268&page=25
とhttp://example.com/news.php?id=X&page=Y
のようなすべてのページを正規表現を使用して別のページにリダイレクトするにはどうすればよいですか?301リダイレクトの正規表現
http://example.com/news.php?id=/d&page=/d
を使ってみました。
数字は\d
と一致し、/d
では一致しません。少なくとも1桁の数字をマッチさせるには、+
量子を追加する必要があります。番号をキャプチャして置き換えることができるようにするには、その周りにキャプチャグループが必要です。
また、正規表現で特別な意味を持つ特定の文字:.
と?
をエスケープする必要があります。
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=$1&page=$2';
echo preg_replace($pattern, $replacement, $string);
は、それはあなただけ(\ D +) ''番号に使う単純なパターンのように見えます。どうしたの? – Barmar
StackOverflowは[あなた自身の問題を最初に解決しようとする](http://meta.stackoverflow.com/questions/261592)と、[宿題に関する質問に答えない](https://softwareengineering.meta。 stackexchange.com/questions/6166)。既に試した内容を[最小限で完全で検証可能な例](http://stackoverflow.com/help/mcve)に表示するために質問を更新してください。詳細については、[良い質問をする方法](http://stackoverflow.com/help/how-to-ask)を参照し、[サイトの見学]を受けてください(http://stackoverflow.com/tour ):) – Barmar
申し訳ありません。http://example.com/news.php?id=/d&page=/dに/ dパターンを使用してみましたが、正しい構文がわからないことを忘れてしまいました。 – fredix11