| ブログトップ | サーバー関連 |

さくらインターネットの謎仕様【mod_rewrite】

たとえば、さくらインターネットにて、「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の値がとれなくなります。

 

■参考にさせていただいたサイト

日々の生活にhappyをプラスする|ハピタス

このエントリーをはてなブックマークに追加

LINEで送る

nandani | 2011年09月09日 | コメント(0) | トラックバック(0) | サーバー関連

トラックバック

トラックバックURL

コメントする

※メールアドレスが公開されることはありません。

名前 *
メール*
URL
Copyright(c) 2010 - 2017 ダリの雑記