質問: サイトの引越しに伴い、記事ページをそれぞれ個別に引越し先のサイトの該当する記事ページにリダイレクトさせています。 元のサイト(AAA.com)において、httpd.confに記述する形で新しいサイト(BBB.com)へのリダイレクトを実現させようと思ったのですが、うまくいきません。 具体的には (元)https://AAA.com/xxx/yyy.php?id=123 (新)https://BBB.com/newid/ 上記のようにリダイレクトさせたく、以下のように元のサイトのhttpd.confを編集しました。 元のサイト(AAA.com)のhttpd.conf抜粋 ``` NameVirtualHost *:443 RewriteEngine On RewriteCond %{REQUEST_URI} /xxx/yyy\.php RewriteCond %{QUERY_STRING} ^id=123$ RewriteRule ^(.*)$ https://BBB.com/newid/? [R=301,L] RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] ``` 内の ``` RewriteCond %{REQUEST_URI} /xxx/yyy\.php RewriteCond %{QUERY_STRING} ^id=123$ RewriteRule ^(.*)$ https://BBB.com/newid/? [R=301,L] ``` が今回新しいサイトへのリダイレクトを実現するために記述した箇所です。 ``` RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] ``` の部分は、元のサイトにてhttpでのアクセスも強制的にhttpsでのアクセスに変更させるための記述です。 前置きがながくなりましたが、ここからが今回のご質問内容です。 **http**://AAA.com/xxx/yyy.php?id=123 でアクセスすると意図した通りに新しいサイトの https://BBB.com/newid/ へとリダイレクトされたのですが、 **https**://AAA.com/xxx/yyy.php?id=123 でアクセスすると新しいサイトへのリダイレクトは行われずに、そのまま元の記事ページ(https://AAA.com/xxx/yyy.php?id=123)にアクセスされてしまいました。 **https**://AAA.com/xxx/yyy.php?id=123でアクセスしても新しいサイトにリダイレクトされるようにしたいのですが、どのような対策をしたら実現できるでしょうか。 皆様のお力をお借りできると幸いです。宜しくお願い申し上げます。 **元のサイト(AAA.com)環境** AWS EC2(Amazon Linux) Server version: Apache/2.2.34 (Unix)
回答: 質問に httpd.conf の内容が全部提示されているわけではないので、推測ですが.... Apache 設定ファイルの別の場所 (例えば、 VirtualHost 等) で、https( *:443 ) へのアクセスが定義されていたりしないでしょうか? 多くの linux の Apache は、デフォルトだと https の設定は、/etc/httpd/conf.d/ssl.conf に `` という設定があったりします。