所以我有一个受密码保护的本地主机服务器,以防止这些未知的IP进入我的服务器。
我想要做的是,一旦他们尝试登录并且他们得到401错误,htaccess将他们发送到名为block.php的文件
如此:ErrorDocument 401 /block.php
问题是,因为他们无权查看该网站上的任何内容,所以根本不会调用block.php。
我该如何解决这个问题?
我的httaccess看起来像这样:
AuthType Basic
AuthName "C:\\xampp\\htdocs"
AuthUserFile C:\\xampp\\htdocs/.htpasswd
Require valid-user
<FilesMatch block.php>
Order Deny,Allow
</FilesMatch>
ErrorDocument 401 /block.php
ErrorDocument 400 /block.php
ErrorDocument 403 /block.php
############### START BANS ###############
答案 0 :(得分:0)
如果您已使用<FilesMatch>
将其取消,则无法使用Require valid-user
容器授予访问权限。你可以做的是使用负正则表达式匹配,这样只有当请求不是/block.php
时才需要auth:
<FilesMatch "(?<!block\.php)$">
AuthType Basic
AuthName "C:\\xampp\\htdocs"
AuthUserFile C:\\xampp\\htdocs/.htpasswd
Require valid-user
</FilesMatch>
ErrorDocument 401 /block.php
ErrorDocument 400 /block.php
ErrorDocument 403 /block.php
答案 1 :(得分:0)
block.php有一个IP白名单,我添加了我的本地IP,我想任何其他欢迎的ips。这促使未知的ips要么没有用户名和密码,要么从我的服务器禁止他们的IP。感谢Jon Lin的修复!