在我的服务器(Apache 2.2)上,我有这样的结构:
/.htaccess
/cache/test-uri/.htaccess
/cache/test-uri/index.html
根/.htaccess
上的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>
子目录/cache/test-uri/.htaccess
上的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>
如果我在浏览器http://example.com/test-uri/
中打开,我在响应内容中看到Test OK
但在响应标头中没有,这意味着根上的.htaccess
工作但{{1} .htaccess
文件夹中的{}不起作用。
如果我在浏览器/cache/test-uri/
中打开,我会在响应内容和响应标头中看到http://example.com/cache/test-uri/
。这意味着Test OK
文件夹中的.htaccess
有效(如果直接调用而不是重写规则)。
问题是: .htaccess在重写规则后面不起作用?