Apache 重写被忽略的最后一个标志
我不明白,如果重写规则匹配,并且它有最后一个[L]标志,它仍然执行下面的规则。我将所有调用重定向到公用文件夹,但为图像添加了一个异常,但该异常被忽略。我认为使用[L]标志,如果规则匹配,它将停止在下面查找规则 这是我的.htaccess文件: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] 如果我删除了下面的两条规则,它确实有效 提前
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中。