質問: 表題の件につきまして、 自分なりに色々と調べたのですが htaccessに不慣れで分からなかったため、 お知恵をお借りできれば思い、 投稿させていただきます。 環境は、Apacheのサーバーで、 ・RewriteRule ・RewriteCond を使用して出来ればと考えております。 実現したいことは、htaccessでクエリ文字を含むURLからクエリ文字を含むURLへの 301リダイレクトです。 ・元のURL http://www.example.com/news/article.php?p=1234 ↓ ・リダイレクト先のURL https://www.example.com/news/1234/ 上記のようなリダイレクトのサンプルは色々のサイトにあったのですが、 今回、実現したいのは下記のようなクエリ文字を含むURLからクエリ文字を含むURLへの リダイレクトとなります。 また、リダイレクト元とリダイレクト先のクエリ文字に規則性はなく、 決め打ちの値で一つ一つ設定する予定です。 ・元のURL http://www.example.com/news/article.php?p=1234 ↓ ・リダイレクト先のURL http://www.example.com/info/news.php?post=20180101 上記のような両方のURLに異なるクエリ文字を持っているURLのリダイレクトの場合、 どのように設定を行えばよろしいのでしょうか? 恐れ入りますが、 上記の内容につきましてご教示いただければ幸いです 恐れ入りますが、 何卒よろしくお願い申し上げます。
回答: ``` RewriteEngine On RewriteCond %{QUERY_STRING} ^p=1234$ RewriteRule ^news/article.php$ /info/news.php?post=20180101 [R=301] ``` Apacheの機能でやるより、`article.php`で受けて、プログラムからリダイレクトを行う方が良いと思います。