「/category?name=html」のようなURIは複雑で嫌なので(SEO的にも良くないようだ)、「/category/html/」でアクセスできるようにした。最後のスラッシュを付けるべきか付けないべきか悩んだのだが、ディレクトリに偽装した方が検索エンジンには登録されやすい気がしたので付けておいた。
今回は$name = substr( $_SERVER["PATH_INFO"], 1, -1 );
で「/category」以下のパスを取得して条件分岐に使っている。
mod_rewriteを使おうかとも考えたのだけど、根本的にディレクトリの位置を偽装する場合ならともかく、これぐらいの事なら必要ないという結論に達した。
SEO的には拡張子無しのURIはどうなんだろうか。コンテントネゴシエーションを優先したい所だが、検索エンジンに引っかからないのも寂しい気がする。.phpを露骨に付けておくのとどっちが良いのだろうか。
$_SERVER["SCRIPT_NAME"]
の挙動ところで、phpinfoを見ていて気が付いたのだが$_SERVER["SCRIPT_NAME"]
が返す値がWindowsXP上のApache2.0.48とXREAが提供するLinux上のApache1.3.29で違う。PHPのバージョンはどちらも4.3.4。
Multiviewsを有効にしているため拡張子無しで「foo」とリクエストした場合、「foo.php」がサーバから帰ってくる。そこまでは良いのだが、$_SERVER["SCRIPT_NAME"]
に格納される値がWindowsXP上だと「foo.php」、XREAのサーバだと「foo」でなぜか違う。ちょっぴり不便。