воскресенье, 10 марта 2013 г.

Редирект через mod_rewrite превращает POST запрос в GET

Если использовать редирект POST запроса через mod_rewrite, то в результате POST превратится в GET

<IfModule mod_rewrite.c>
  RewriteCond %{REQUEST_URI} ^auth.php$
  RewriteRule (.*) http://auth.example.com/login.php [R=301,L]
</IfModule>

Несмотря на всю костыльность самой идеи есть способ, который позволит избежать этой проблемы. Вместо 301 редиректа нужно использовать 307.

<IfModule mod_rewrite.c>
  RewriteCond %{REQUEST_URI} ^auth.php$
  RewriteRule (.*) http://auth.example.com/login.php [R=307,L]
</IfModule>

Решение было найдено моим коллегой в википедии.

1 комментарий:

  1. Весь вечер ебался, только благодаря вашей статье решил проблему

    ОтветитьУдалить