Restlerを構成するときは、次の書き換えルールを作成することをお勧めします。
DirectoryIndex index.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^$ index.php [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
これを REST ディレクトリのルートにある .htaccess ファイルに入れましたが、このルールが実行されると 500 サーバー エラーが発生します。Apache エラー ログのエラー メッセージは次のとおりです。
[Wed Oct 10 10:39:30 2012] [alert] [client 127.0.0.1] /public/api/.htaccess: RewriteCond: unknown flag 'QSA'
[Wed Oct 10 10:39:30 2012] [error] [client 127.0.0.1] File does not exist: /public/favicon.ico
favicon.ico ファイルがないことは無視できると思いますが、「unknown flag 'QSA'」というエラーが気になります。書き換えルールについてはほとんど知らないので、助けていただければ幸いです。
Restler に精通している人のために、私は 3.0.0rc2 を使用しています (それが重要な場合)。また、index.php への明示的な呼び出しを使用すると、404 JSON エラー応答 (肯定的な改善) が返されるほどうまく機能しますが、上記のように、書き換えルールに依存すると、500 サーバー エラーが返されるだけであることも指摘しておく価値があります。 :
http://localhost/api/index.php/say/hi - WORKS (gives JSON 404 error)
http://locahost/api/say/hi - 500 SERVER ERROR