web-dev-qa-db-ja.com

ユーザーが.htaccessを使用して特定のサイトから来た場合にのみ、HTMLページへのアクセスを許可できますか?

2つのHTMLページ、AおよびBを持つWebサイト.

もちろん、URLを入力することで両方にアクセスできます。

ただし、ページBへのアクセスをすべて禁止し、ユーザーがfromページAに来ている場合にのみ許可することはできますか?同様に、ページBにリダイレクトするページAのリンク.

.htaccessを使用することは可能ですか、それとも他の選択肢がありますか?

3
Omega

はい。以下の例では、A以外のページからページBに到達したユーザーは、禁止されたエラーを受け取ります。それを行うには、次のようなものが必要です。

RewriteCond %{HTTP_REFERER} !^http://www.yoursite.com/A.html$
RewriteRule B.html - [F,NC]

yoursiteおよびhtml拡張子を、ケースに応じて適切に置き換えます。

人々がリファラーを偽造できるため、これは安全な方法ではないことに注意してください。これを行う安全な方法が必要な場合は、リファラーを使用する代わりにSSL経由でログインする必要があります。

あるコメント者が指摘したように、合法的なユーザーはリファラーフィールドまたは間違ったものを表示しないことがあります。プライバシーソフトウェアがこれを行うこともありますが、多くのサイトで問題(ホットリンク保護など)が破壊されるため、もはや一般的ではありません。

3
Itai