我试图阻止直接访问我的网站上的所有php文件,除了index.php使用htaccess。到目前为止我已经得到了以下代码,但是它仍然不能阻止表单直接访问php文件。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php)
RewriteRule ^(.*)$ index.php?page=$1 [L]
</IfModule>
我的解决方案:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond $1 !^(index\.php|.*\.css|.*\.js|.*\.png|.*\.gif|.*\.jpg)
RewriteRule ^(.*)$ index.php?page=$1 [L]
</IfModule>
答案 0 :(得分:0)
这是因为这些行:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
如果请求的资源是文件或目录,那么明确告诉重写模块不运行以下规则
但是,我同意最好将它们完全移出网络根目录。