Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 重写被忽略的最后一个标志_Apache_Mod Rewrite_Flags - Fatal编程技术网

Apache 重写被忽略的最后一个标志

Apache 重写被忽略的最后一个标志,apache,mod-rewrite,flags,Apache,Mod Rewrite,Flags,我不明白,如果重写规则匹配,并且它有最后一个[L]标志,它仍然执行下面的规则。我将所有调用重定向到公用文件夹,但为图像添加了一个异常,但该异常被忽略。我认为使用[L]标志,如果规则匹配,它将停止在下面查找规则 这是我的.htaccess文件: RewriteRule ^image/(.*)/?$ image.php?t=$1 [L] RewriteRule ^$ public/ [L] RewriteRule (.*) public/$1 [L] 如果我删除了下面的两条规则,它确实有效 提前

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

这是我的.htaccess文件:

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

RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
如果我删除了下面的两条规则,它确实有效

提前感谢

这是不可忽视的。 它是.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]

谢谢你,这是有效的,我理解为什么,但是没有更简单的方法吗?有。将原始规则放到VirtualHost部分的httpd.conf中。