использование .htaccess для REST делает перенаправление 301 - PullRequest
3 голосов
/ 19 мая 2009

Я пытаюсь создать чрезвычайно простую тестовую установку RESTful для приложения, над которым я работаю. Я использую .htaccess для перенаправления URL-адресов в мой скрипт контроллера, где я буду анализировать URL-адреса для обработки логики.

У меня работает перенаправление, но проблема в том, что если я делаю POST / PUT / DELETE, Firebug правильно показывает мои запросы, идущие на тестовую установку, но я получаю ответ перенаправления 301 и затем второй ответ GET.

Как я могу использовать htaccess для перенаправления URL-адреса без отправки 301 в браузер?

Это .htaccess, который я использую сейчас:

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

1 Ответ

4 голосов
/ 19 мая 2009

Попробуйте что-то вроде этого:

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

Это будет перенаправлять, если не существует запрашиваемого файла (такого как изображение или файл CSS). Я часто использую эти правила, и я никогда не сталкивался с 301.

Убедитесь, что ваш PHP-скрипт не меняет ответ на 301.

...