2011-07-08 7 views
0

宛先URLと参照先URLに応じてユーザーをリダイレクトしたいと思います。私はホームページのURLがhttp://www.example.com/で、そのページにはhttp://www.example.com/page/x/を指すリンクがたくさんあるとします。ユーザーがhttp://www.example.com/からhttp://www.example.com/page/に行くと、別のページにリダイレクトされます。しかし、ユーザがhttp://www.example.com/からのリンクを介してhttp://www.example.com/page/x/に行くと、リダイレクトされません。これを達成するために、私が考えている解決策は、ユーザーがhttp://www.example.com/から来ているのに、http://www.example.com/page/x/を表示したいかどうかを正確に判断するために目的地のURLを取得することです。結論はhttp://www.example.com/page/へのアクセスを阻止したいが、そのサブページにはアクセスしたくない。PHPを使用して目的地URLを取得しますか?

+0

リファラーURLが信頼できないため、簡単になりすますことができます。これは問題ですか? – spraff

+0

@spraff:私の場合、それはどんなページでもかまいませんので、それは問題ではないと思います。 'http:// www.example.com/page /'にサブページを除いてアクセスできないようにしたいと思います。 – jilseego

+0

これはページrtの仮想階層であり、子ページでは 'page'フォルダ内のページを意味します – Balanivash

答えて

1

あなたがここでやろうとしていることは恐ろしいことです。

ブラウザから返されるリファラーには頼ることはできませんが、それは良い指標です。ジェネリックなjavascriptを使用して、ページ上のすべてのリンクを書き換えて、現在のページのURLエンコードされたURLを含むCGI変数を追加することができます(javascriptが有効な場合は動作しません)。あるいは、出力バッファを書き換えてCGI変数をPHPのhrefに挿入することもできます。これらのどちらも簡単なことではなく、ユーザーが壊れた場合、ユーザーはナビゲートできなくなります。

しかし今のところ実装を離れて - あなたの解決策はむしろばかばかしいようです。

問題が

http://www.example.com/page/

へのアクセスを防止しますが

http://www.example.com/page/x/

に対する要求が続いてでのindex.phpを作成できるようにすることです場合のようなもの....

ウェブサーバーで自動インデックスを無効にするか、無効にします。

+0

これはまったくうまくないとわかりました... – jilseego

0

example.com/page/に誰もアクセスできないと思われるので、http://www.example.com/page/Headerの機能を追加すると、ページを別のページにリダイレクトできます。

関連する問題