• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:昔に書いた.htaccessの内容がわからない)

昔の.htaccessの内容がわからない!何のための記述か教えてください

このQ&Aのポイント
  • 5年ほど前から放置していた自作サイトの.htaccessを開いてみたところ、書いたはずの記述が理解できないという状況に。正式な.htaccessの書き方を知らないため、コピーしてきたのかもしれない。
  • RewriteEngine on、RewriteCond、RewriteRuleなどの記述があり、ググっても明確な答えが得られない。悩んだ覚えがある場合、URLにindexファイル名を非表示にしたり、wwwを追加しないURLにしたりするためのものかもしれない。
  • しかし、これらの検索結果とは違う記述が出てきたため、具体的な目的が不明。質問者の.htaccessの目的を知る方に教えてもらいたい。

質問者が選んだベストアンサー

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.1

> RewriteCond %{HTTP_HOST} !^hogehoge.com$ [NC] HTTPリクエストに書かれたホストが hogehoge.com 以外([NC]は大文字小文字を区別しない) > RewriteCond %{HTTP_HOST} !^$ HTTPリクエストに書かれたホストが「空」以外 > RewriteRule ^(.*) - [F] 上記2件の条件が共に満たされた時、クライアントに対して「403 Forbidden」を返す。

その他の回答 (1)

  • asciiz
  • ベストアンサー率70% (6803/9674)
回答No.2

RewriteXXXX は、 「RewriteCond(条件) ~~~」に一致したとき 「RewriteRule(書き換え規則) ~~~」に従ってURLを書き換える ということをします。 なので、 ・www無しに統一する例 RewriteCond %{HTTP_HOST} ^www\.aaaaaaaa\.jp$ RewriteRule ^(.*)$ http://aaaaaaaa.jp/$1 [R=301,L] → www.aaaaaaaa.jp/ABCDE.html にアクセスされたら、aaaaaaaa.jp/ABCDE.html にリダイレクトします。 ・index.html(.cgi, .php) を表示しない例 RewriteCond %{THE_REQUEST} ^.*/index.(html|cgi|php) RewriteRule ^(.*)index.(html|cgi|php)$ http://%{HTTP_HOST}/$1 [R=301,L] → (サイト不問)/aaa/bbb/index.html にアクセスされたら、(自サイト)/aaa/bbb/ にリダイレクトします。 みたいな書き方をします。 >RewriteRule ^(.*) - [F] こちらについては回答No.1さんの書かれた通りなのですが、ご質問に書かれた2条件が成立場合とは…? ・hogehoge.com とそれ以外のサイト(たとえばfoobar.com)が同サーバで動いている。 ・どちらかのwebrootがもう片方のwebroot位置と同じか、含む位置にある。 という状況で ・指定のディレクトリにおいて、foobar.com でアクセスしてきたときにはForbidden表示する。 みたいなアクセスを想定していることになります。 あ、そうか、Webサーバ自体をwwwありと無しで両方受け付けるようにした場合、そうなりますね。 そしてそこで、wwwありでアクセスしてきた場合に、403 Forbidden を表示すると。 でもそもそも、きちんとwww無しにリダイレクトしてしまえば、このForbidden設定に引っかかることは無くなります。 その.htaccess は捨ててしまい、新しい転送ルールだけ書けばすっきりするでしょう。

関連するQ&A