htaccess阻止除index.php之外的直接.php文件

时间:2016-04-26 16:44:05

标签: php .htaccess utf-8

我想阻止直接的.php文件访问。以下2行正常

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^(.+)\.php - [F,L]

但是,它不会打开index.php文件。我想阻止直接.php文件访问,除了 index.php 文件

4 个答案:

答案 0 :(得分:1)

添加条件以不将规则应用于特定文件:

RewriteCond $1 !^(index\.php)$

答案 1 :(得分:1)

要阻止直接访问.php以外的所有index.php个文件,您可以使用以下规则:

RewriteCond %{THE_REQUEST} \.php[?/] [NC]
RewriteRule !^index\.php$ - [F,L,NC]

您需要使用%{THE_REQUEST}变量。 THE_REQUEST变量表示Apache从您的浏览器收到的原始请求,并且在执行一些重写规则后不会被覆盖。

答案 2 :(得分:0)

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule !^index\.php$ - [F,L]

答案 3 :(得分:0)

Options +FollowSymlinks
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !^(.+).css$ 
RewriteCond %{REQUEST_FILENAME} !^(.+).js$ 
RewriteCond %{REQUEST_FILENAME} !index.php$ 
RewriteRule ^(.+)$ /deny/ [nc] 

访问文件“CSS”,“JS”和“index.php”将在那里。其他请求将重定向到“拒绝”文件夹。