你如何通过htaccess获得自定义401 Unauthorized页面

时间:2015-03-04 21:15:39

标签: php .htaccess

所以我有一个受密码保护的本地主机服务器,以防止这些未知的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 ###############

2 个答案:

答案 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的修复!