WordPressインストールでは、.htaccessファイルはサブディレクトリにアクセスすると403エラーが発生しますfoo
(サブディレクトリはWordPressインストールの一部ではありませんが、後で作成したものです)。たとえば、次のようなツリーファイルがあります。
/www
|-wp-content/
|-[all the stuff for wordpress]
|-.htaccess
|-foo/
|-.htaccess
より具体的にエラーを引き起こす行はwww/.htaccess
次のとおりです。
RedirectMatch 403 \.(cgi|asp|aspx|cfg|dll|exe|jsp|mdb|sql|ini|rar)$
この問題を克服するために、私は以下を作成しましたwww/foo/.htaccess
。
RedirectMatch 200 \.(cgi|asp|aspx|cfg|dll|exe|jsp|mdb|sql|ini|rar)$
しかし、その行がなぜ影響を与えるのか理解できませんfoo
。サブディレクトリの名前は実際にはfoo
(テスト用)、ディレクトリはです.htaccess
。
答え1
fooディレクトリに正規表現と一致するファイルがあるとします。
\.(cgi|asp|aspx|cfg|dll|exe|jsp|mdb|sql|ini|rar)$
.
リストされた拡張子の1つは、次のすべての項目と一致します。
したがって、fooディレクトリにbar.cgi
そのパスがある場合は、パスのfoo/bar.cgi
終わりが一致をトリガし、そのディレクトリが一覧表示されないようにします。
ガラスショーケースregex101のこの動作