2013-06-12 2 views
0

현재 htaccess를 사용하여 apache2 서버의 모든 HTTP 요청을 https로 강제 전송합니다. https가 설정되어 제대로 작동합니다. 기본 도메인 이름 (예 : http://mydomain.com) 만 사용하는 경우 htaccess 다시 쓰기가 작동하지만 http://mydomain.com/index.php과 같은 작업을 수행하면 401 오류 메시지가 나타납니다. 내 htaccess는 htpasswd 파일을 사용하여 권한이있는 사용자에게 모든 콘텐츠를 제한한다는 것을 언급해야합니다.htaccess를 사용하여 https가 htpasswd로 전체 URL에 대해 작동하지 않음

http -> https에 대한 재 작성을 사용하지 않으면 http와 https가 로그인 할 때마다 긴 URL을 사용하여 제대로 작동합니다. 그렇지 않은 경우 로그인하라는 메시지가 표시됩니다. 사용자에게 로그인하라는 메시지를 표시하지 않고 단순히 401 오류 페이지를 표시합니다.

이 내 htaccess로 파일 : 그 재 작성 선없이

RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L] 
AuthName "Enter Account Info... Or your computer will blow up!!!" 
AuthType Basic 
AuthUserFile /<censored>/.htpasswd 
AuthGroupFile /dev/null 
require user <censored> 

, 모든 것이 잘 작동합니다. http 또는 https에 대한 요청은 정상적으로 작동하지만 다른 것을 위해 rewrite를 사용하면 기본 도메인이 어딘가에서 깨지는 것처럼 보입니다.

나는 웹에서 발견 된 다양한 재 작성 규칙을 시도해 보았습니다. 모두 동일한 결과를주었습니다. 직접적인 페이지 링크가 아닌 기본 URL에 대해 잘 작동합니다.

+0

필자는 htaccess를 변경하고 다시 쓰기 규칙을 제거하고 PHP 코드의 몇 가지 핵심 위치에 배치했습니다. 'if ($ _ SERVER [ "HTTPS"]! = "on ") .... ....이 방법은 사이트에서 사용하는 모든 URL (http와 https 모두)에서 작동하는 것으로 보입니다. 그것은 처음에 http를 사용하면 이중 로그인을 강요하지만, 이것은 잠시 동안 허용됩니다. – MirtheN

답변

0

비슷한 문제가 있었는데, 이것이 저에게 효과적이었습니다. 당신의 httpd.conf에서

, 가상 호스트 아래에 있는지 확인하십시오 당신이 모두 :

서버 이름 domain.com을

ServerAlias에 www.domain.com

가상 호스트 *에서 둘 : (80)와 가상 호스트 * : 443