필수 401 인증에 도달하고 관련 브라우저 프롬프트를 받기 때문에 .htaccess에 문제가 있습니다. 그러나 브라우저에서 "취소"를 클릭하면 사이트가 계속 로드됩니다(단, 외부 도메인의 콘텐츠만 로드됩니다). 즉, 내가 보는 것은 다음과 같습니다.
- 나는 방문한다http://staging.mywebsite.example.com
- 브라우저에 비밀번호 프롬프트가 표시되고 취소를 클릭합니다.
- 외부 콘텐츠는 화면의 콘텐츠를 렌더링합니다. 즉, Firebug를 보면 콘텐츠가 외부 도메인에서 로드되는 것을 볼 수 있습니다.http://mywebsite.example.com(예: 스테이징 사이트 아님) 및 다양한 외부 콘텐츠(예: Google Analytics 등)
다음 명령을 실행하고 있습니다(CloudLinux의 cPanel).
- CloudLinux 버전 7.2
- 아파치/2.4.18
- Linux 3.10.0-427.10.1.lve1.4.7.el7.x86_64 #1 SMP 4월 2일 토요일 12:09:46 EDT 2016 x86_64 x86_64 x86_64 GNU/Linux
내 .htaccess는 다음과 같습니다.
AuthType Basic
AuthName “Hello world ! “
AuthUserFile "/home/base/.htpasswds/public_html/passwd"
require valid-user
## JOOMLA STUFF
IndexIgnore *
Options +FollowSymlinks
Options -Indexes
RewriteEngine On
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule .* index.php [F]
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]