の背後にある作品(のApache 2.2は、i)は、この構造を持っていない:ルート/.htaccess
上は私のサーバー上でのRewriteRule
/.htaccess
/cache/test-uri/.htaccess
/cache/test-uri/index.html
htaccessファイル:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteCond "%{DOCUMENT_ROOT}/cache/%{REQUEST_URI}/index.html%" -f
RewriteRule .* "/cache/%{REQUEST_URI}/index.html" [L]
</IfModule>
にhtaccessファイルサブディレクトリ/cache/test-uri/.htaccess
:
<IfModule mod_headers.c>
Header set X-Test "Test OK"
</IfModule>
/cache/test-uri/index.html
内容は次のとおりです。
<html>
<head></head>
<body>Test OK</body>
</html>
私は応答内容にTest OK
を参照してくださいhttp://example.com/test-uri/
ブラウザで開くが、応答ヘッダーで、これはルート作品に.htaccess
よりも意味はないが、/cache/test-uri/
フォルダ内の.htaccess
」のdoesnの場合仕事。
http://example.com/cache/test-uri/
私はTest OK
の応答内容と応答ヘッダーを期待どおりに参照しています。これは、/cache/test-uri/
フォルダ内の.htaccess
が機能することを意味します(直接呼び出され、書き換えルールの背後にない場合)。
質問があります:書き換えルールの後ろに.htaccessが動作しません。
Apache 2.4では、このシナリオはうまくいくようです。内部的にリダイレクトされたパスは本当に上位レベルのhtaccessに影響します。 – Deadooshka
これは独立したテストケースですか?他のディレクティブまたは '.htaccess'ファイル? '/ test-uri'はルートから離れた物理ディレクトリか、完全に仮想のリクエストURLですか? – MrWhite