Как запретить mod_rewrite обрабатывать запросы HTTP Post? - PullRequest
1 голос
/ 17 декабря 2011

мой .htaccess выглядит следующим образом -

<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteRule ^auth\.php$ - [L]
RewriteRule ^static - [L]
RewriteRule (.*) router.php [L]
</IfModule>

Он в основном гарантирует, что все запросы направляются в router.php (кроме auth.php и статической папки)

Теперь проблемав том, что всякий раз, когда я создаю POST-формы, mod_rewrite заставляет HTTP-посты перенаправляться на router.php.

Как мне убедиться, что HTTP-посты не перенаправляются в router.php?

Ответы [ 2 ]

6 голосов
/ 17 декабря 2011

Вы можете сформулировать условия для перезаписей, основываясь на различных вещах, предлагаемых сервером apache, таких как метод запроса или хост.Директива называется RewriteCond.Тогда будут переписаны только запросы, соответствующие одному или нескольким условиям.

 RewriteCond %{REQUEST_METHOD} !POST
 RewriteRule .* router.php [L]

%{REQUEST_METHOD} - это переменная сервера, которая содержит метод запроса. Список методов .

1 голос
/ 17 декабря 2011

Использование RewriteCond:

RewriteCond %{REQUEST_METHOD} !POST
RewriteRule (.*) router.php [L]

http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritecond

...