.htaccessを下位フォルダに置いたらリダイレクトが利かなくなった
知ってれば当たり前、初歩的な内容なのですが。
誤った場所に .htaccessのリダイレクト処理を置いて、他のリダイレクト処理が利かなくなってしまいました。
つまり、今まで表示されていたページが表示されなくなるという障害を起こしてしまいました。
原因
.htaccessの影響範囲を誤って理解したため
・親ディレクトリの設定は、子ディレクトリにも有効
・一つ.htaccessを設置すると、その下にぶら下がる全ディレクトリに影響が及ぶ
ネットで検索するとでてくる.htaccessの影響範囲の説明
このことから
①上位ディレクトリでリダイレクト処理を書く
②下位ディレクトリでも別の内容のリダイレクト処理を書く
①②両方OKになるのと勘違いしていまいした。
今回の障害事例
①redirect/test/A/Cへのアクセスはすべて https://yahoo.co.jp
にリダイレクトされます。
www直下の.htaccessには以下の記述がありました。
RewriteEngine on
RewriteRule redirect/test/A/C https://yahoo.co.jp [L,R=301]
②新たに
redirect/test/Bへのアクセスはすべて https://google.co.jp へリダイレクトする処理を追加します。
www直下の.htaccessを触って真っ白になるのが嫌だったので
www/rediret/test直下の.htaccessを新たに作成し以下の記述をしました。
ネットで検索するとでてくる
「親ディレクトリの設定は、子ディレクトリにも有効」
などの言葉を誤って解釈していたのでここで悲劇が起こりました。
RewriteEngine on
RewriteRule B https://google.co.jp [L,R=301]
③redirect/test/A/Cから https://yahoo.co.jp
へのリダイレクトが利かなくなった
解決①
リダイレクト処理はwww直下の.htaccessに追記
RewriteEngine on
RewriteRule redirect/test/A/C https://yahoo.co.jp [L,R=301]
RewriteRule redirect/test/A/B https://google.co.jp [L,R=301
解決②
www/rediret/test直下の.htaccessに親ディレクトリのリダイレクト処理をだぶって書く
RewriteEngine on
RewriteRule B https://google.co.jp [L,R=301]
RewriteRule A/C https://yahoo.co.jp [L,R=301]
.htaccessのリダイレクト処理(RewriteRule)は追記ではなく上書き
今回だと、
www/rediret/test直下に.htaccessを置いて、リダイレクト処理(RewriteRule)の記述をしたので
www/rediret/test以下のリダイレクト処理は上書きされたのです。
つまり、www直下の.htaccessに記述したwww/rediret/testフォルダへのリダイレクト処理は上書きで消えてしまったのです。
これを解決するには
①www/rediret/test/.htaccessに上位ディレクトリのRewriteRuleをもう一度書く
②上位ディレクトリの.htaccessにRewriteRuleに追記する
のどちらかになります。
参考↓
適用のされ方Apache公式サイト説明
※実は以前にも同じような依頼があって
www直下の.htaccessを触りたくなかったので下位ディレクトリに.htaccessを作成しリダイレクト処理を書いてました。
たまたまwww直下の.htaccessに該当フォルダへのRewriteRuleがなかったのでうまくいってただけのようです。
次からは要注意です。
というかサイト作成に何一つかかわっていないのに、.htaccessの作成だけ丸投げされるのは怖いです。
Author And Source
この問題について(.htaccessを下位フォルダに置いたらリダイレクトが利かなくなった), 我々は、より多くの情報をここで見つけました https://qiita.com/apple123/items/b412675b2d90fc119e78著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .