[PHP-users 30496] PHPファイルへのパラメータをスラッシュ区切りで渡す方法について【IIS】

ken zuiun_no_chaya @ yahoo.co.jp
2006年 10月 11日 (水) 20:02:52 JST


小池@茶谷です。

ユーザからの要望でWin2003Server+IIS6.0+PHP4.3.9の環境で
サーバ内の一部のコンテンツ(ページ)のURLをスラッシュ区切で実装すること
になりました。

色々と調べた結果、
_SERVER['PATH_INFO']を使用するのが最もスマート且つ簡単に対応可能かと思い
まして自分の借りているレンタルサーバでテストしてうまく動作したので
そのまま本番の環境で動かしてみました。(以下のプログラムです)

test.php
<?php
list(,$_GET['str1'], $_GET['str2']) = explode('/',
$_SERVER['PATH_INFO']);
print "パラメータ1は、{$_GET['str1']} です<br>";
print "パラメータ2は、{$_GET['str2']} です<br>";
?>

しかし本番環境ではうまく動作せず、

Warning: Unknown(c:\Inetpub\wwwroot\test.php\a\b): failed to create
stream: No such file or directory in Unknown on line 0

というエラーが表示されます。
ちなみにアクセスした際のURLは
http://www.example.com/test.php/a/b/
つまりaやbをディレクトリとして解釈しているようなのです。

私の借りているレンタルサーバ(うまく動作した環境)と
本番環境(失敗してしまった環境)の違いは
OSとWebServerというのは十分認識しているのですが、
PHPのバージョンは同じです。

list(,$_GET['str1'], $_GET['str2']) = explode('/',
$_SERVER['PATH_INFO']);

の部分はphpが解釈すると思うので
OSやWebServerの違いで異なる動きをするという
ことが分かりません。

仮にOS等に依存するような現象であった場合、
Win2003Server+IIS6.0+PHP4.3.9でスラッシュ区切のURLを
実装できる方法をご存知の方がいらっしゃいましたら、ご教授して
頂きたいと思います。宜しくお願い致します。



--------------------------------------
[10th Anniversary] special auction campaign now!
http://pr.mail.yahoo.co.jp/auction/


PHP-users メーリングリストの案内