2013-07-23 1 views
1

콘텐츠 또는 404 메시지를 제공하는 PHP 스크립트에 존재하지 않는 URL (엄격히 404 오류가 아닌)을 다시 쓰는 .htaccess로 예쁜 URL을 설정했습니다. CSS, 이미지 등이 영향을받지 않도록이 재 작성에서 기존 파일 및 디렉토리를 제외했습니다..htaccess는 암호로 보호 된 디렉토리를 다시 작성하지만 404 오류를 발생합니다.

그러나 .htpasswd에 의해 암호로 보호되는 하나의 디렉토리가 있습니다.이 디렉토리는 다시 쓰기 규칙을 무시해야하지만 .htpasswd를 사용할 수있는 경우가 아닙니다.

상위 디렉토리의 .htaccess : 나는 require valid-user 줄을 제거하면

RewriteEngine on 

Options All -Indexes 

AuthName "Backstage Access" 
AuthType Basic 
AuthUserFile /path/to/.htpasswd 
AuthGroupFile /dev/null 
require valid-user 

는, 상위 디렉토리의 재 작성 규칙은 하위 디렉토리로 무시 :

RewriteEngine On 

RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /callbacks.php [L] 

다음의 .htaccess와 하위 디렉토리가있다 내가 원한다면 브라우저에서 액세스 할 수 있습니다. 그러나 권한을 설정하면 상위 디렉토리의 .htaccess가 하위 디렉토리를 /callbacks.php으로 다시 작성하므로 맞춤 404 오류가 발생합니다.

해결 방법에 대한 의견이 있으십니까? 분명히 암호 보호의 필요성을 제거 할 수는 없습니다. 부모 재 작성 규칙을 제거하고 대신 단지 오류 메시지로 /callbacks.php을 사용했지만 POST 및 GET 데이터는 전송되지 않습니다.

답변

0

나는 아직도 경우 실제 모르겠지만, 저도 같은 문제를 겪고 및 수정을 발견 - 다음 줄 당신의 htaccess로 추가 :

ErrorDocument 401 /somepage.html 
ErrorDocument 403 /somepage.html 

을 그리고이 바이 패스 라이터에 충분합니다