3

私は次のことを達成するhtaccessファイルを設定しようとしています:

閲覧しているユーザーが特定のドメインから来ている場合にのみ、私のWebサイトの閲覧を許可します(リンク)

だから、例えば。私はというドメインを持っています。secure.mydomain.com。unprotected.mydomain.comのリンクから来た人だけがprotect.mydomain.comにアクセスできるようにしたいと思います。

私が抱えている大きな未解決の問題は、unprotected.mydomain.comからprotect.mydomain.comにアクセスし、protect.mydomain.comの下の別のページに移動するprotect.mydomain.comのリンクをクリックすると、送信されることです。 http_refererはprotect.mydomain.comであるため、リダイレクトに戻ります。それで、それと戦うために、リファラーが同様にprotect.mydomain.comになることを許可するためにチェックを入れました。それは機能しておらず、どこからでもアクセスが許可されています。これが私のhtaccessファイルです。(これはすべてhttpsの下にあります)

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} ^https://(.+\.)*mydomain\.com
RewriteCond %1 !^(protect|unprotected)\.$ 
RewriteRule ^.*$ https://unprotected.mydomain.com/ [R=301,L]
4

1 に答える 1

5

リファラーをと照合しています^https://(.+\.)*mydomain\.com。つまり、完全に他のサイト、たとえばprotect.mydomain.comhttp://stealing_your_images.com/上の何かへのリンクがある場合、最初の条件は失敗するため、リクエストがにリダイレクトされることはありません。他の方向からアプローチし、特定のリファラーのみを通過させてから、他のすべてをリダイレクトします。https://unprotected.mydomain.com/

RewriteEngine On
RewriteBase /

# allow these referers to passthrough
RewriteCond %{HTTP_REFERER} ^https://(protect|unprotected)\.mydomain\.com
RewriteRule ^ - [L]

# redirect everything else
RewriteRule ^ https://unprotected.mydomain.com/ [R,L]
于 2012-09-11T17:14:38.020 に答える