- ベストアンサー
さくらサーバーのアクセス制限ができません
- さくらサーバーのアクセス制限方法について調査しましたが、設定がうまくいきません。
- 訪問者を別のURLに転送する方法を試しましたが、正常に転送されません。
- 初めて.htaccessを使用していますが、ファイルの遷移ができないようです。詳細を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> RedirectとRedirectMatchで違っていたのですか。 う~んもう少し正確に言うと、Redirectディレクティブは前方一致とワイルドカードによる簡単な一致の判定を行うもので、RedirectMatchはそれを拡張して「正規表現」というとても強力なパターン検索を行えるようにしたものだ。 で、今回の正規表現「^/$」は厳密に「スラッシュ一つだけ」という場合にのみヒットする。なので、 http://www.xxx.sakura.ne.jp/ はヒットして http://www.xxx.sakura.ne.jp/aaa/bbb/ccc.html にリダイレクトされるが http://www.xxx.sakura.ne.jp/aaa/bbb/ccc.html ではヒットしないので http://www.xxx.sakura.ne.jp/aaa/bbb/ccc.htmlaaa/bbb/ccc.html にリダイレクトされない →ばっちり! なわけだ。 ついでに言っておくとRedirectMatch ^/$は http://www.xxx.sakura.ne.jp/index.html にもヒットしないので、DirectoryIndexにindex.htmlが含まれていてかつindex.htmlを入れている場合は http://www.xxx.sakura.ne.jp/ だとリダイレクトされて http://www.xxx.sakura.ne.jp/index.html だとindex.htmlが表示される。
その他の回答 (1)
- anmochi
- ベストアンサー率65% (1332/2045)
(1)Redirect / "http://www.xxx.sakura.ne.jp/aaa/bbb/ccc.html" ↓ (2)RedirectMatch ^/$ "http://www.xxx.sakura.ne.jp/aaa/bbb/ccc.html" ↓ (3)RedirectMatch ^/$ /aaa/bbb/ccc.html ↓ (4)RedirectMatch permanent ^/$ /aaa/bbb/ccc.html 下に行くほどお勧めの設定。 ~詳しいこと~ まずは(1)がなぜだめかについて。 Redirect / "http://www.xxx.sakura.ne.jp/aaa/bbb/ccc.html" は、http://www.xxx.sakura.ne.jp/のどこかにアクセスするとパス部を維持したままhttp://www.xxx.sakura.ne.jp/aaa/bbb/ccc.htmlへ飛べという命令になる。 つまり、http://www.xxx.sakura.ne.jp/へアクセスするとhttp://www.xxx.sakura.ne.jp/aaa/bbb/ccc.htmlへ飛ばされhttp://www.xxx.sakura.ne.jp/aaa/bbb/ccc.htmlへアクセスしようとするのだが、またこのリダイレクトルールが適用されてhttp://www.xxx.sakura.ne.jp/aaa/bbb/ccc.htmlaaa/bbb/ccc.htmlへ飛ばされる。さらに(以下無限ループ)。 なので、http://www.xxx.sakura.ne.jp/の時のみhttp://www.xxx.sakura.ne.jp/aaa/bbb/ccc.htmlへ飛ぶようにしないといけない。これを実現するのが(2)で、スラッシュのみのときだけリダイレクトする。 http://www.xxx.sakura.ne.jp/→http://www.xxx.sakura.ne.jp/aaa/bbb/ccc.html http://www.xxx.sakura.ne.jp/index.html→そのまま表示 http://www.xxx.sakura.ne.jp/aaa/bbb/ccc.html→そのまま表示 さらに、同じホスト内で飛ぶので、飛び先は相対パスにした方が良い。これが(3)。 さらにさらに、リダイレクトには301(permanent、恒久的リダイレクト)と302(temporary、一時的リダイレクト)という2つがあるのだが、このような固定的なリダイレクトは301を使う方が良いだろう。これが(4)だ。
補足
RedirectとRedirectMatchで違っていたのですか。 回答のRedirectMatchでもう一度試してみます。
補足
RedirectMatchだと部分一致や後方一致も行えるので そちらのほうが便利だということですか。 正規表現も詳しくは知らないので、色々と試してみます。