私は公共の使用のためにウェブサイトを構築しています。
それは共有ウェブサイトです-誰もが特定のコンテンツをダウンロードすることを許可されていますが、すべてのファイルがどこに保存されているか誰にも分からないようにしたいので、URL転送を使用することにしました。誰かがfakesite.comにアクセスすると、realsite.comを表示/リダイレクトせずにrealsite.comを返します。
この仕事をする方法がわかりません。 URL転送の使用方法を説明してください。
あなたの問題はユーザー権限であるように思えます。ユーザーが「ファイルが保存されている」場所を知っていても、ダウンロードすべきでないときにダウンロードできない場合は問題ではありません。
あなたがする必要があるのは、最初にウェブルートの外にファイルを保存することです-例えば、あなたのサイトルートが/var/www/website
にある場合、/var/websitefiles
にファイルを保存します。次に、サイト上のyoursite.com/download.php?file=123
のようなものにリンクします。このリンクは、そのwebsitefiles
フォルダーからファイルを取得してユーザーに提供するスクリプト/プログラムを実行します。ダウンロードスクリプトは、ユーザーのアクセス許可を確認し、ビジターのアクセスを許可しない場合は拒否します。
通常、これにはプロキシ(リバースプロキシ)を使用するか、サーバーに2つのドメイン名をリッスンさせるだけです。リンク先のドメインを所有していない場合、ドメインを介してサイトをプロキシすることはおそらく許可されていません。これは、私には何もしたくないウェアーズまたは同様のサイトのように聞こえます。
本当にリバースプロキシを使用したい場合は、私の別の答えを参照してください。 サブディレクトリを別のIPにポイントしますか?
IPを使用する代わりに、他のドメイン名を使用し、サブフォルダーのエイリアスを作成するのではなく、VirtualHost全体がパブリックドメインをリッスンするようにします。
ほとんどのサーバーでは、ディレクトリ内のすべてのファイルが表示されないように、フォルダー自体へのアクセスを制限できます。 index.htmlをスローして、それを防ぐこともできます。次に、ファイル名を暗号化します( vWorker のように)。そうすれば、誰かがすべてのファイルを知っていても、それらにアクセスすることはできません。
ドメイン名のみを非表示にする場合は、DNSでCNAMEを使用して、他のドメインを指すようにすることができます。これを制御できない場合は、 Amazon Route5 で簡単に実行できます。