| SQLだけでフィールド間のコピーを行うブログトップ | サーバー関連 | Facebookのフレンド登録には注意しようというお話
さくらインターネットの謎仕様【mod_rewrite】
この記事は1年以上前の記事のため、内容が古い可能性があります。
たとえば、さくらインターネットにて、「test」というフォルダを作り、その中に「hoge.php」というファイルをいれます。
当然ながら
http://ドメイン/test/hoge.php
でもアクセスできるわけですが、なんとさくらインターネットでは
http://ドメイン/test/hoge/aaa.html
と書いても、hoge.phpにアクセスできちゃいます。(aaaの部分はなんでも構いません。)
今やってる仕事で
RewriteEngine On
RewriteBase /test
RewriteRule ^hoge/(.*).html$ hoge.php?c=$1 [L]
こんな感じのhtaccess書いて設置したところ、アクセスは出来るけど、なぜかGETの値が取れないな~と悩んでおり、試しにhtaccessをとってもアクセスできちゃったから驚きました^^;
はじめはphp.iniの方で変な記述しちゃったかな~とか思ったんですが、自分が所持している別のサーバ(さくらインターネット)で試してみても同じ結果に。
どうやらさくらインターネットのデフォルト仕様のようですね。
共有サーバだからかな~。
でもヘテムルでもファーストサーバでも共有サーバでこんな現象は起きなかったけど。
ちなみにGETの値が取れないという問題点の解決方法ですが、リクエスト側の記述と実際にアクセスする側の記述を、別の名前にするとうまくいくそうです。
RewriteEngine On
RewriteBase /test
RewriteRule ^hoge/(.*).html$ hoge_1.php?c=$1 [L]
この場合、「hoge.php」は必ず削除しておいてください。
「hoge.php」が存在していると、上記のように書いていても、結局「hoge_1.php」ではなく「hoge.php」にアクセスしてしまい、GETの値がとれなくなります。
■参考にさせていただいたサイト
nandani | 2011年09月09日 | コメント(0) | トラックバック(0) | サーバー関連
トラックバック
トラックバックURL
コメントする
※メールアドレスが公開されることはありません。