0

解決策を探しましたが、明確な答えが見つかりません - 少し専門外ですが、ピンチで答えを見つける必要があります。

.htaccess を使用して、外部リンクから特定の Web ページへのアクセスを検証および許可しています。ここに私が使用するもののサンプルがあります:

AuthUserFile /dev/null
AuthGroupFile /dev/null

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://www.website_abc.com/
RewriteCond %{HTTP_REFERER} !^http://www.website_xyz.com/

RewriteRule /* http://www.mysite.com/denied_message.php [R,L]

これは思い通りに機能します。アクセスしたいサイトをリストし、ルート ディレクトリに .htaccess をパークします。

私の問題は、誰かが HTTPS からリンクしている場合、それらがリストに含まれていてもブロックされることです (リストに https も入れてみました)。さまざまな答えが見つかりましたが、完全に理解したものや、うまくいったものはありませんでした。

1つは使用していました:

RewriteCond %{HTTPS} on

しかし、それは誰でもどこからでも入ることを許可しました。

誰かが私のためにこれを綴ることができますか?

アパッチ/ランプ

ありがとう!

4

1 に答える 1

2
RewriteCond %{HTTPS} on

これにより、サイトへの実際のリクエストがHTTPS経由であるという条件が追加されます。リファラーと一致させたいだけです。リファラーチェックにあるバージョンを追加する限り、何を試したかはhttps://わかりませんが、空白のhtaccessファイルに入れれば機能します。

RewriteEngine On

RewriteCond %{HTTP_REFERER} !^http://www.website_abc.com/
RewriteCond %{HTTP_REFERER} !^http://www.website_xyz.com/
RewriteCond %{HTTP_REFERER} !^https://www.website_abc.com/
RewriteCond %{HTTP_REFERER} !^https://www.website_xyz.com/

RewriteRule /* http://www.mysite.com/denied_message.php [R,L]   
于 2012-07-17T21:53:47.563 に答える