htaccess拒绝访问所有php文件,但重定向旧的不存在

时间:2017-08-05 08:31:34

标签: apache .htaccess redirect mod-rewrite http-status-code-403

据我所知,L标志仅适用于mod_rewriteS来重写规则。但是,我有一些旧的索引php页面,我想重定向到新的URL。我喜欢这样的数十条线:

RewriteRule ^example.php(/?.*) /example/$1 [R=301,L]

这可以正常工作,但我的.htaccess中也有这段代码:

<Files *.php>
Order Deny,Allow
Deny from all
</Files>

我想知道,如果符合规则可以跳过这个,只要上面提到的这两个标志不适用。

1 个答案:

答案 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]