Apache 2.4要求全部拒绝,不能与RewriteRule一起使用

时间:2018-10-05 16:06:24

标签: apache .htaccess mod-rewrite apache2.4

自升级到Apache 2.4以来,我遇到了一个奇怪的问题。看来RewriteRule覆盖了.htaccess文件deny all命令的各个部分。

Require all denied

RewriteEngine on

RewriteRule ^index\.php\/(.*) /$1 [R=301,QSA,L]

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php

RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

会发生什么情况,任何单独的文件(例如/robots.txt或/favicon.ico)都将收到403错误。但是,当尝试呈现网站的一部分(例如/ site / login)时,它实际上允许浏览器通过并且服务器执行index.php并呈现登录表单(尽管由于所有这些资产都是403,所以都没有JS或CSS)

我不是专家,但是“要求全部拒绝”部分似乎应该结束执行。为什么仍允许执行index.php?

0 个答案:

没有答案