Как игнорировать "?" в регулярном выражении? - PullRequest
1 голос
/ 25 августа 2011

Я использовал регулярные выражения в IIS для перенаправления, чтобы, если кто-то посещает /test01/, он перенаправлял их на /test.asp?kw=test01. Однако я все еще хочу иметь возможность добавлять строку запроса, чтобы /test01/src=url перенаправлял на /test.asp?kw=test01&src=url.

Это было достаточно просто сделать, но я хотел бы, чтобы они могли либо использовать /test01/src=url ИЛИ /test01/?src=url, чтобы регулярное выражение было достаточно умным, чтобы игнорировать знак вопроса.

Я использовал: ^test01/(.*) для перенаправления на /test.asp?kw=test01&{R:1}. Я попытался ^test01/(\??)(.*) при том понимании, что вопросительные знаки позволяют игнорировать предыдущий символ, но это не сработало, и я не совсем уверен, как подойти к этому. Любой совет будет оценен.

Ответы [ 2 ]

1 голос
/ 25 августа 2011

Попробуйте:

^test01/\??(.*)

В противном случае ваш \?? является обратной ссылкой # 1, а ваша строка запроса становится обратной ссылкой # 2.


Обновление

Также может потребоваться отключить обратное отслеживание , используя еще одно значение +:

^test01/\??+(.*)

Хотя я не знаю, поддерживает ли это IIS. И, похоже, движку PHP это не нужно .

0 голосов
/ 25 августа 2011

Следующее выражение должно работать.

  ^test01/[?]?(.*)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...