2015-03-04 3 views
2

Итак, у меня есть защищенный паролем сервер Localhost Server, чтобы эти неизвестные IP-адреса не попадали на мой сервер.Как у вас есть пользовательская страница 401 Unauthorized через htaccess

То, что я хочу сделать, это, как только они пытаются войти в систему и они получают Htaccess 401 ошибка отправляет их в файл с именем 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

Как выглядят ваши директивы auth? –

+0

Я не знаю, что вы подразумеваете под директивами auth? – Terry

ответ

0

Вы не можете использовать <FilesMatch> контейнер для грант доступ к, если вы уже сделали это далеко с Require valid-user. Что вы можете сделать, это использовать отрицательный матч регулярного выражения, так что авторизация требуется только когда запрос не для /block.php:

<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 
+0

Я изменил его так, как вы сказали. Но теперь он выполняет block.php независимо от того, какую страницу я посещаю. Защита паролем больше не работает! Я что-то пропустил с помощью этого кода? – Terry

+0

@Terry он выполняет block.php, потому что защита паролем говорит. Когда вы защищаете паролем что-то, он выдает запрос «401 Authorization Required», поэтому браузер может открыть диалоговое окно входа в систему. 403 - это код при неудачной аутентификации. Поскольку у вас есть 'block.php' как документ с ошибкой 401, вы видите, что для ** каждой страницы вы переходите на **. –

0

block.php имел белый список IP-адресов из и я добавил свой локальный IP, и я предполагаю, что любой другие приветствовали ips. Это вызвало неизвестные ипс либо без имени пользователя и пароля, либо у них был заблокирован IP-адрес моего сервера. Спасибо Jon Lin за исправление!