2

.htaccess特定のファイル タイプが のように.js、またはの.cssような直接アクセスでは開けないように実装したいと考えていますwww.example.com/path/to/style.css。これは 403 エラーのはずですが、必要に応じてブラウザでこのファイルを読み取ることができます。

ここに私が実装したコードがあり、これはローカルサーバーでは機能しますが、ページをメインサーバーにアップロードしたときは機能しません

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?127.0.0.1 [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?127.0.0.1.*$ [NC] 
RewriteRule \.(js|css|jpg|png)$ - [F]

編集:私はちょうど試みてこれを試してみましたが、うまくいきました!

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?127.0.0.1 [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?127.0.0.1.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com.*$ [NC] 
RewriteRule \.(js|css|jpg|png)$ - [F]

これは私が考えていたよりもはるかに簡単で、私の考えの功績はAndy Holmesにもあります

4

4 に答える 4

0

これは、mydomain.com を別のドメインとして追加することで得られる答えです。文字通り、必要な数のドメインを追加し、各 apache サーバーの同じ .htaccess を追加できます。

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?127.0.0.1 [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?127.0.0.1.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com.*$ [NC] 
RewriteRule \.(js|css|jpg|png)$ - [F]
于 2013-10-28T00:42:56.150 に答える
0
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?127.0.0.1.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain.com.*$ [NC]
RewriteRule \.(png|jpg|jpeg|css|js)$ - [F,NS,L]

これを試してみてください、私の他の唯一の提案です

于 2013-10-28T00:02:45.703 に答える
-1

127.0.0.1 をドメイン名に変更します

編集:

<FilesMatch "\.(?:js|css|jpg|png|jpg|jpeg)$">
Order allow,deny
Deny from all
</FilesMatch>

EDIT2:

私はあなたを誤解しました

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?{HTTP_HOST} [NC]
RewriteRule \.(jpg|jpeg|png|gif|css|js)$ - [NC,F,L]
于 2013-10-27T23:43:53.443 に答える