やー、悩みました。
.htaccessを使ってhttp:// から https://にリダイレクトをしたいけど、特定のURLだけリダイレクトしたくない
というとき、調べてよく出てくるのは
RewriteCond %{REQUEST_URI} !\.rss$ RewriteRule ^(.*)$ https://hogehoge.jp/$1 [R=301,L]
というやつです。(今回はRSSのURLだけ除外したかったので)
でもこの式だと
http://hogehoge.jp/index.php?url=foofoo/index.rss
みたいなURLを判定することが出来ません。
で、この
?url=**********
の部分を何ていうのかよくわからなかったので調べるのに苦労しました。
「getのパラメータ」とググれば出てくるんですね。言われてみれば確かに。w
そして環境変数は QUERY_STRING で受け取れるそうです。
というわけで今回のさくらのサーバーでのhttp:// → https:// リダイレクトは
RewriteEngine on RewriteCond %{REQUEST_URI} !\.rss$ RewriteCond %{QUERY_STRING} !\.rss$ RewriteRule ^(.*)$ https://hogehoge.jp/$1 [R=301,L]
となりました。
めでたしめでたし。
この記事をシェアする