2011-01-05 6 views
3

私のMac上でローカルにAPI用のPHP RESTfulサーバーを開発しています。PHP RESTfulサーバー向けmod_rewrite

私はmod_rewriteを有効にすることができ、サイトディレクトリ(〜/ Sites/api)に対してオーバーライドが許可されています。

〜〜/ Sites/apiは.htaccessファイルとindex.phpです。私はhttp://localhost/~myusername/api/ *へのすべてのリクエストをindex.phpに書き直したいと思います。私はクエリのパラメータを保持する必要がありますが、それはそれです。

私は.htaccessファイルに次のように試してみた:これは500を与える

Options +FollowSymLinks 
RewriteEngine On 
RewriteRule (.*) index.php [QSA,NC,L] 

:内部サーバーエラー。

FollowSymLinks行をコメントアウトすると、403:Forbiddenエラーが発生します。

書き換えを行わずにindex.phpにアクセスできます。

ご提供いただけるお手伝いがあれば幸いです。私は今泣いているように感じる。

おかげで、ハンドラはあなたのindex.phpスクリプトに渡されるものです ロス

答えて

7
RewriteRule ^api/(.*)$ index.php?handler=$1 [L,QSA] 

。例えば、

http://localhost/~myusername/api/getUser/myusername

の要求は問題が[L]手段がこの URLの書き換えを停止することである

http://localhost/~myusername/api/index.php?handler=getUser/myusername

+1

'index.php'を除外する必要があります。 – Gumbo

+0

@Gumbo:気にしない場合は、声明に説明を記入してください:) – kta

+0

@kaziTanvirAhsanそのコメントは3歳以上です。私はそれが何を意味するのか分かりません。 – Gumbo

1

に書き換えされますが、あなたは新しいURを生成していますLをindex.phpと同様に書き直すと、無限ループが発生します。

index.phpが書き換えられないようにすると、RewriteCondが追加されます。

関連する問題