Как мне преобразовать mod_rewrite (опция QSA) в эквивалент Nginx?

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

  •  07-07-2019
  •  | 
  •  

Вопрос

Я хочу преобразовать следующее правило mod_rewrite в эквивалент Nginx :

RewriteRule ^foo/(.*)$ /bar/index.php?title=$1 [PT,L,QSA]
RewriteRule ^foo/*$ /bar/index.php [L,QSA]

Пока у меня есть:

rewrite ^foo/(.*)$ /bar/index.php?title=$1&$query_string last;
rewrite ^foo/?$ /bar/index.php?$query_string break;

Проблема в том (я думаю!), что строка запроса не добавляется. Я не нашел способа перенести аргумент QSA в Nginx.

Это было полезно?

Решение 2

Эти правила перезаписи заставили скрипты работать:

rewrite ^/foo/([^?]*)(?:\?(.*))? /bar/index.php?title=$1&$2;
rewrite ^/foo /bar/index.php;

Другие советы

QSA является автоматическим в NGINX.

Если вы этого не хотите, добавьте? до конца вашего нового местоположения

переписать ^ / foo /bar/index.php? последний;

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