だから、私が構築しているPHPアプリでURLを少しいじっています。
.htaccess を使用して mod_rewrite を使用しています。これは次のようになります。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php/$1
</IfModule>
URLが以下のように書かれていると思いました:
http://localdomain.com/controller
$_SERVER['PATH_INFO'] の一部として、'controller' が問題なく終了することを期待します。ただし、Apache 2.2.22 を実行している Ubuntu 12.04 では、代わりに 404 Not Found エラーが発生します。
NOT FOUND
The requested URL /index.php/controller was not found on this server.
index.php に続くスラッシュの後に「コントローラー」が適切にアドレス指定されているようですが、予想される応答ではなく 404 が返される理由を知っている人はいますか?
最終的に、私が構築している MVC フレームワークで使用する「コントローラー」をキャプチャしようとしています。
この場合、私は非常に単純な index.php を持っています:
<?php
echo $_SERVER['PATH_INFO'];
それでも、予想されるパス情報ではなく、404 エラーが表示されます。
注: http://localdomain.com/またはhttp://localdomain.com/index.phpにアクセスするだけでも問題なく動作します。mod_rewrite がオンで機能しており、AllowOverride が All に設定されています。