Apache .htaccessは外部ドメインをブロックしません。

Apache .htaccessは外部ドメインをブロックしません。

必要な401認証に達し、関連するブラウザプロンプトを受け取るため、.htaccessに問題があります。ただし、ブラウザで[キャンセル]をクリックすると、サイトは引き続き読み込まれます(ただし、外部ドメインのコンテンツのみが読み込まれます)。つまり、私が見るものは次のとおりです。

  1. 私は訪問するhttp://staging.mywebsite.example.com
  2. ブラウザにパスワードプロンプトが表示され、[キャンセル]をクリックします。
  3. 外部コンテンツは画面上のコンテンツをレンダリングします。つまり、Firebugを見ると、コンテンツが外部ドメインからロードされていることがわかります。http://mywebsite.example.com(例:ステージングサイトではない)やさまざまな外部コンテンツ(例:Google Analyticsなど)

次のコマンドを実行しています(CloudLinuxのcPanel)。

  • CloudLinux バージョン 7.2
  • Apache/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]

関連情報