$_GET 取得できない

2013年1月27日 at 11:52

concrete5の範疇ではありませんが、調べても調べても答えが見つからないので、
質問させてください。

PHP 5.3.3/MySQL 5.1.66/Apache 2.2.15 (CentOS 6.3)/concrete5.6.0.2.ja

レンタルサーバー(Xserver)から自鯖へWEB環境を引越しました。
すると自鯖では、$_GETのスーパーグローバル変数を
参照すると、NULLが入ってしまいます。Xserverでは正常に参照できます。

?yy=2013などといったQueryStringを付加してアクセスしても展開されない
ということです。

原因不明で途方に暮れています。どなたか教えていただけませんか?



variables_orderの設定は、EGPCSになっています。

http://ashiyanpo.jp/about/facilireserve/meeting?
このQueryStringに対する実行結果は下記のとおりです。

$_GET
array(1) { ["pathinfo"]=> string(27) "about/facilireserve/meeting" }
$_SERVER["QUERY_STRING"]
string(36) "pathinfo=about/facilireserve/meeting"
$_ENV
array(16) { ["TERM"]=> string(5) "linux" ["PATH"]=> string(29) "/sbin:/usr/sbin:/bin:/usr/bin" ["runlevel"]=> string(1) "5" ["RUNLEVEL"]=> string(1) "5" ["LANGSH_SOURCED"]=> string(1) "1" ["PWD"]=> string(1) "/" ["LANG"]=> string(1) "C" ["previous"]=> string(1) "N" ["PREVLEVEL"]=> string(1) "N" ["CONSOLETYPE"]=> string(2) "vt" ["SHLVL"]=> string(1) "3" ["UPSTART_INSTANCE"]=> string(0) "" ["UPSTART_EVENTS"]=> string(8) "runlevel" ["UPSTART_JOB"]=> string(2) "rc" ["_"]=> string(15) "/usr/sbin/httpd" ["HTTP_ACCEPT_LANGUAGE"]=> string(23) "ja,en-us;q=0.7,en;q=0.3" }

補足
concrete5を使っています。FAQを参照しましたが、.htaccessに関する記述が見当たりませんでした。
http://concrete5-japan.org/help/faq/how-to-resto
[.htaccess]

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f
RewriteRule ^(.*)$ index.php?pathinfo=$1 [L]

タグ:

Re: $_GET 取得できない

2013年1月27日 at 13:18
これが問題だと思います。URLを丸っとpathinfoのGETの引数にしてしまってますので。

RewriteRule ^(.*)$ index.php?pathinfo=$1


さくらインターネットで動かす方法としてこの .htaccess が紹介されていますし、確かに動くのですが、GETの値が取れなくなるのはちょっとマズイですよね。ぼくもページリストのページ送りが動かなくなったりしました。

この .htaccess の書き方は、サーバー側でPATHINFOの値が取得できない場合です。自鯖であれば使えるようにすればいいだけなので、いったんプリティURLを解除して再度有効化し、.htaccessを作成しなおしてみてください。
 

Re: Re: $_GET 取得できない

2013年1月27日 at 13:50
hissyさん、ご返事ありがとうございます!
仰せのとおり、.htaccessを作成し直してみたら、なおりました!
本当にありがとうございます。感謝します!