3

作業中のアプリ用に非常にシンプルなRESTfulテストリグを構築しようとしています。.htaccessを使用してURLをコントローラースクリプトにリダイレクトし、そこでURLを解析してロジックを処理します。

リダイレクトは機能していますが、POST / PUT / DELETEを実行すると、Firebugはリクエストがテストリグに正しく送信されることを示しますが、301リダイレクト応答と2番目のGET応答を受け取ります。

ブラウザに301を送信せずに、URLリダイレクトにhtaccessを使用するにはどうすればよいですか?

これは私が今使っている.htaccessです:

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1
4

1 に答える 1

4

次のようなものを試してください。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

これは、要求されたファイル(画像やCSSファイルなど)が存在しない限りリダイレクトされます。私はこれらのルールを頻繁に使用しますが、301に遭遇したことはありません。

PHPスクリプトが応答を301に変更していないことを確認してください。

于 2009-05-19T00:26:52.233 に答える