我想阻止直接的.php文件访问。以下2行正常
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^(.+)\.php - [F,L]
但是,它不会打开index.php文件。我想阻止直接.php文件访问,除了 index.php 文件
答案 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”将在那里。其他请求将重定向到“拒绝”文件夹。