Как я могу сделать это правило перезаписи, чтобы оно могло принимать строку запроса? - PullRequest
0 голосов
/ 15 мая 2019

У меня есть правило перезаписи URL, использующее метод map.

            <rewriteMap name="Pages">
                <add key="/search" value="/search.asp" />
            </rewriteMap>




            <rule name="Rewrite rule1 for Pages">
                <match url=".*" />
                <conditions>
                    <add input="{Pages:{REQUEST_URI}}" pattern="(.+)" />
                </conditions>
                <action type="Rewrite" url="{C:1}" appendQueryString="true" />
            </rule>

Моя проблема в том, что когда я использую эту страницу, как показано ниже, я получаю ошибку:

/ поиск? Ключевое слово = математика

Я получаю ошибку HTTP 404.0 - не найдено

Подробная информация об ошибке: Модуль IIS Web Core Карта уведомленийRequestHandler Обработчик StaticFile Код ошибки 0x80070002 Запрашиваемый URL http://localhost:85/search?keyword=math Физический путь D: \ webs \ V5ST \ HTML \ search Метод входа анонимный Войти Аноним пользователя

Как я могу сделать так, чтобы любая строка запроса передавалась в search.asp?

1 Ответ

1 голос
/ 17 мая 2019

Вы можете использовать приведенное ниже правило перезаписи:

 <rule name="query string redirect" enabled="true" stopProcessing="true">
                <match url="(.*)" />
                <conditions>
                    <add input="{REQUEST_URI}" pattern="search\?(.*)" />
                </conditions>
                <action type="Rewrite" url="http://localhost:132/search.asp?{C:1}" appendQueryString="false" />
            </rule>

С уважением, Jalpa

...