2016-05-03 19 views
0

似たような(しかし全く同じではない)質問があるかもしれないが、解決策のどれも私のためには役に立たないようだ。ディレクトリへのアクセスを特定の参照者に限定する

私はウェブサイト:xy.com/publicを持っています。 xy.com/privateという別のサイトがあります。 xy.com/publicは一般に公開されています。しかし、私は一般の人々がxy.com/privateに直接アクセスすることを望んでいません(つまり、人々はブラウザにURLを入力してxy.com/privateのコンテンツにアクセスすることを望んでいません)。

代わりに、xy.com/private xy.com/publicへのアクセスを提供したいと考えています。あるいは、別の言い方をすれば、xy.com/publicのページはxy.com/privateのページを呼び出し、その内容を要求者がこのように利用できるようにします。 .htaccessを使ってこれを行う方法がなければならないと確信しています。私はCentOS OSのVPSでApacheを使用しています。私は解決策を見つけようと多くの時間を費やしましたが、役に立たないものです。私は書き換えエンジンが使用されるだろうと推測しています。

感謝の気持ちで助けてください。

+0

プライベートからインクルードし、すべてのファイルを非公開で直接要求する必要があるということですか?すべてのものをプライベートにリダイレクトする必要がありますか?あなたはprivate/anypage.phpを表示する必要がありますが、puplicのディレクトリページからリクエストされた場合にのみ表示する必要がありますか? –

+0

ありがとうございます。 private/anypage.phpを表示できるようにしたいのですが、public/anypage.phpによって呼び出された場合のみです。 private/anypage.phpのURLを知っている人がブラウザにURLを入力して直接アクセスしないようにしたい。基本的に、私は公開サイトを通してprivate/anypage.phpを使ってみんなに強制したい –

+0

だから、ある人がprivate/somepage.phpを要求したいのであれば、それはpublic/somepage.phpになりますか? –

答えて

0

プライベートな.htaccessファイルの中に次のコードを入れて、誰もプライベート/ file.phpまたはprivate/image.pngをブラウズすることができないようにしてください(このコード行RewriteRuleを参照してください)。(php | gif | jpg | png) $ - [F]あなたは、あなたが、JSやCSSなどのようにしたいものは何でも追加することができます。.. 今、それは拡張子JPG、PNGやGIFなどのphpファイルとイメージのためである)

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

しかし、彼らは閲覧することができます公共または他のディレクトリからのリンクを押す場合に限ります。

注:

いくつかのいずれかは、プライベート要求しようとした場合/あなたが例のErrorDocument 404 /path/to/error/page.phpのためのいくつかの方法でそれを処理しない限り、それはエラーになりますwrongpage.php

更新:

あなたはすべての要求が必要な場合は公開ディレクトリからのみ来る、あなたはfolloで上記のコードを変更することができますウィングではあるがプライベートディレクトリの.htaccessファイル内:

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?xy.com/public [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?xy.com/public.*$ [NC] 
RewriteRule \.(php|gif|jpg|png)$ - [F] 
+0

本当にありがとうMohammed。できます。私はあなたの努力を非常に感謝します! –

+0

よろしくお願いします。よろしいですか? –

関連する問題