- ベストアンサー
URLのクエリー文字列の前にindex.phpなどのファイル名がないもの
URLのなかには、以下のようにクエリー文字列の前にファイル名がないものがありますが、 http://news.livedoor.com/article/detail/3436603/?p=2 これはどういう仕組みになっているんでしょうか? また、どういうメリットがあるんでしょうか? 試しにURL末尾の「?p=2」を「index.html?p=2」「index.php?p=2」などにしてみましたが、FILE NOT FOUNDになるだけでした。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
これを使うメリットはセキュリティ上、クエリー文字列がみられるとまずいということなんでしょうか。 クエリー文字をみられてはまずいという意味でのセキュリティ的な意味ではなく、直接たたかれなくないソースが有る場合に便利です 例えば、DocumentRoot上には、1つのスクリプトファイルのみを配置し、全てはその1つのスクリプトファイルへクエリ文字を送りつけることにより、他の場所にあるさまざまなプログラムを処理させて画面を構成させることにより開発の効率やソースの隠蔽化も簡単にできます 例えば、 プログラムA(ページのメニューを生成する) プログラムB(最新ニュース一覧を表示する) プログラムC(本日のニュース一覧を表示する) プログラムD(ニュースの詳細を表示する) があったとします これらは本来であれば2つ以上組み合わせて正常な動作をするのですが、DocumentRoot上に置いてしまった場合 www.***.jp/プログラムA とアクセスされてしまっては困りますね ページのメニューだけ表示されて情けないことになります そこで、DocumentRoot以外の場所にこれらを退避させます DocumentRootにはindex.***のみを置いて、mod_rewriteで変換させることにします そうすれば、例えば www.***.jp/news/ のようにアクセスされた場合は プログラムAとBを起動させる! www.***.jp/20071221/ とアクセスされた場合は、これを日付けと解釈しAとCを起動させる! www.***.jp/20071221/12 とアクセスされた場合は、日付けとニュース番号と解釈しプログラムAとプログラムDを起動! のようなカラクリも簡単に作れます また、利点としては ・URLが見やすく単一的なURLになる ・SEO対策として有効である クエリー文字がぐちゃぐちゃ付いた状態ではロボット型検索では上位にくることはあまりありませんので、いかにも固定ページだよ と言わんばかりの偽装ができると言うことです
その他の回答 (1)
- inu2
- ベストアンサー率33% (1229/3720)
.html .php ではない可能性もあります また、mod_rewriteで書き換えている場合は、推測しようもないです articleやdetail、3436603 そのものが何かしらの値であり、実際にその場所にDIRが存在するわけではない ということも考えられます
お礼
ご回答ありがとうございます。 打ち込んでみたファイル名は単なる推測なので、たしかに分からないですよね。 mod_rewriteというものを使っている可能性もあるわけですね。 検索して調べてみて納得しました。 これを使うメリットはセキュリティ上、クエリー文字列がみられるとまずいということなんでしょうか。
お礼
たしかに、各ファイルを覗かれるのはイヤですね。 また、SEOに有効だとは知りませんでした。 利用しているサーバがmod_rewriteを利用できるようなので いろいろ試したいと思います。 丁寧にご回答いただき本当にありがとうございます。