Я использовал регулярные выражения в 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/(\??)(.*), понимая, что вопросительные знаки позволяют игнорировать предыдущий символ, но это не сработало, и я не совсем уверен, как к этому подойти. Любой совет будет принят во внимание.

1
justisb 25 Авг 2011 в 18:54

2 ответа

Лучший ответ

Пытаться:

^test01/\??(.*)

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


Обновить

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

^test01/\??+(.*)

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

1
Lightness Races in Orbit 25 Авг 2011 в 15:28

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

  ^test01/[?]?(.*)
0
Garvin 25 Авг 2011 в 15:13