0

我想使用 htaccess 检查 URL。开发人员可能想要运行特殊文件 - specialfile.php。我使用 htaccess:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /specialfile\.php$
RewriteRule .* [L]   #don't change adress
RewriteRule ^$ public/index.html [NC,L]
RewriteRule (.*) public/$1 [NC,L]

我的想法是:如果 rewriteCond %{REQUEST_URI} !/specialfile.php$ true 比 htaccess 应该使用 RewriteRule .* [L] - 这应该意味着 specialfile.php 将运行,这一切。但它不起作用,因为它运行下一条规则:RewriteRule (.*) public/$1 [NC,L]。

4

1 回答 1

0

我认为您使用RewriteCond不正确。这些条件只影响接下来的条件RewriteRule

查看Apache 主页上的示例。由于您的第二个RewriteRule已评估,我认为您的条件不正确。要获得有关重写的更多信息,您应该提高日志级别。这也记录在这里

你的第二条规则^$只匹配一个空请求顺便说一句。这就是为什么它可能无法按您期望的那样工作。

于 2012-11-19T10:15:08.837 回答