私は自分のローカルPCでxamppを使用しています。 .htaccessファイルは/test/
フォルダに置かれます。私は、アドレスlocalhost/test
をクロムブラウザでテストしています。.htaccess - 動作を理解するのに役立ちます
.htaccessファイルはこれです:
RewriteEngine On
RewriteRule . http://google.com
これは、Googleにリダイレクトします。これと同じ
RewriteEngine On
RewriteRule .. http://google.com
3ドット、4ドット、5ドット、6ドット、7ドット、8ドット、9ドットと同じです。
しかし、10ドット以上のリダイレクトがある場合は動作しません。これはリダイレクト(10ドット)をしません
RewriteEngine On
RewriteRule .......... http://google.com
このような.htaccessファイルで実際にドットはどういう意味ですか?彼らは正規表現ですか? 10のマジックナンバーは何ですか?
編集 私はおそらく原因を発見しました。 localhost/test
のアドレスで開かれているファイルはindex.php
です。このファイル名の長さは実際には9文字です。
9個以下のドットは一致しますが、10個のドットは一致しません。私はこれが答えだと思う。
edit2 ドットにはまだ何か魔法があります。今私はtest2
の空のディレクトリに.htaccessファイルを置き、localhost/test2
のアドレスをテストし始めました。
リダイレクトは13ドットまで発生します。 14ドット以上の場合、リダイレクトはありません。混乱する。 Apacheのドキュメント(https://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule)によれば
私はapacheのエラーログファイルでanswearを見つけました。この正規表現のドットパターンは、ディレクトリに.htaccessしかない場合でも、index.php、index.pl、index.cgi、index.aspなどのいくつかのデフォルトファイル名と照合されます。そのファイル名の1つが13文字の場合、リダイレクトが開始されます。お返事ありがとうございます。 – trzczy
"ありがとう"ではなく、有益な回答のためにアップヴォートを使用してください。 – Walf
私はそれが実際に一致しているかどうかを確認するあなたの方法が好きですが、実際には私の回答は唯一の良い答えです。とにかくありがとうとポイント。 – trzczy