mod_rewrite только на GET - PullRequest
       13

mod_rewrite только на GET

8 голосов
/ 22 ноября 2011

Это длинный снимок, но я надеюсь найти простой обходной путь для странной ошибки, которая проявляется только тогда, когда строка запроса опускается / выводится приложением.

Прежде чем я углублюсь в тысячу строк уменьшенного стороннего javascript, я хотел бы выяснить, могу ли я просто автоматически применить строку запроса, используя mod_rewrite.

RewriteRule    ^index\.php$  index.php?module=Home&action=index

Теперь это будет работать нормально, за исключением того, что иногда все данные будут отправлены POST, поэтому мне нужно RewriteCond, чтобы правило запускалось только на GET запросах, а не POST.

Возможно ли это?

Ответы [ 4 ]

14 голосов
/ 16 июня 2014

Я бы рекомендовал быть явным и запускать RewriteRule только тогда, когда метод запроса GET, а не всякий раз, когда он не POST, поскольку существует множество других методов. Таким образом, ваше условие перезаписи может выглядеть так:

RewriteCond %{REQUEST_METHOD}  =GET

RewriteRule    ^index\.php$  index.php?module=Home&action=index
12 голосов
/ 22 ноября 2011

Добавить это условие ...

RewriteCond %{REQUEST_METHOD} !POST

... не соответствует POST запросам.

3 голосов
/ 22 ноября 2011

С документы :

  • Переменные сервера: Это переменные вида %{ NAME_OF_VARIABLE }, где NAME_OF_VARIABLE может быть строкой, взятой из следующего списка:

    ...

соединение и запрос:
...
REQUEST_METHOD

Итак, да.Используйте RewriteCond с этой серверной переменной.

0 голосов
/ 06 июня 2019

Это прекрасно работает для запросов GET ...

RewriteCond %{REQUEST_METHOD} ^GET [NC]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...