質問: mod_rewriteでアドレスを隠す・・・ mod_rewriteで、たとえば、 sample.php?id=123 というのを sample/123.html と書き換えるようなruleを追加します。 このとき、 アドレス欄に 「sample/123.html」と入れれば、アクセスできるが、 「sample.php?id=123」 というアドレスを打ち込んでも、 アクセスできないようにする方法はありますか? つまり、元のアドレスやパラメータを探られないようにする方法はありますか? よろしくお願いします。
回答: mod_rewriteでも出来ないことはないですが、scriptaliasmatchとかで良いんじゃないですかね? scriptaliasmatch sample/[0-9]+\.html$ /var/www/html/sample.php sample.phpの方では $id = basename($_server['request_uri'],".html"); でidの取得が出来ると思います。 mod_rewriteだと rewriteengine on rewriterule sample/[0-9]+\.html$ /var/www/html/sample.php でしょうか。 取得は同じで $id = basename($_server['request_uri'],".html"); こんな感じで取れると思います。