использование .htaccess для REST выполняет перенаправление 301

StackOverflow https://stackoverflow.com/questions/880391

Вопрос

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

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

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

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

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1
Это было полезно?

Решение

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top