RewriteRule被忽略的最后一个标志

时间:2011-06-30 10:29:44

标签: apache mod-rewrite flags

如果重写规则匹配并且它具有Last [L]标志,它仍然执行下面的规则,我不明白。我将所有调用重定向到公用文件夹,但我为图像添加了一个例外,但异常被忽略。我认为如果规则匹配,使用[L]标志会停止寻找下面的规则。

这是我的.htaccess文件:

RewriteRule ^image/(.*)/?$ image.php?t=$1 [L]

RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]

如果我删除了底层2规则,它确实有用。

提前致谢

1 个答案:

答案 0 :(得分:3)

不被忽视。 它是.htaccess的具体内容。 每次更改URL时都会重新运行。

试试这个。

RewriteEngine on

RewriteCond %{QUERY_STRING} rewritten
RewriteRule .* - [L]

RewriteRule ^image/(.*)/?$ image.php?t=$1&rewritten=1 [L,QSA]
RewriteRule ^$ public/?rewritten=1 [L,QSA]
RewriteRule (.*) public/$1?rewritten=1 [L,QSA]