据我所知,L
标志仅适用于mod_rewrite
和S
来重写规则。但是,我有一些旧的索引php页面,我想重定向到新的URL。我喜欢这样的数十条线:
RewriteRule ^example.php(/?.*) /example/$1 [R=301,L]
这可以正常工作,但我的.htaccess中也有这段代码:
<Files *.php>
Order Deny,Allow
Deny from all
</Files>
我想知道,如果符合规则可以跳过这个,只要上面提到的这两个标志不适用。
答案 0 :(得分:1)
您可以将所有特定的重定向规则保留在顶部,然后是通用规则,拒绝访问.php
文件,如下所示:
RewriteEngine On
# specific .php handlers
RewriteRule ^example\.php(/.*)?$ /example/$1 [R=301,L,NC]
# generic rule to deny .php files
RewriteCond %{REQUEST_URI} !^/index\.php [NC]
RewriteRule \.php$ - [F,NC]