2008-12-05 2 views
3

У меня проблема в том, что изменяя способ, которым я делаю перезаписи URL в приложении Asp.Net изменил файлы журналов IIS из вида:IIS Log Files показывая переписан, а не URL исходной

/страница/80 и т.д .. /страница/anotherpage/80 и т.д. ...

к

Default.aspx страница = 1 80 и т.д. ... Default.aspx страница 2 = 80 и т.д. ...

Я немного озадачен тем, как это произошло. Есть ли параметр, который мне не хватает (Win 2008, ASP.NET 2.0). Параметр «runAllManagedRequests» также включен.

ответ

0

Я не знаю, какой метод вы используете для перезаписи URL-адресов, но я знаю, что с Apache (и ISAPI_Rewrite в Windows) вам нужно добавить флаг для каждого правила в файле .htaccess (или эквиваленте) для сообщите ему, чтобы зарегистрировать переписанный URL, а не оригинал.

+0

Это интересно. Перенос Url выполняется с помощью .net http Module, а не с ISAP-dll. Возможно, есть опция в методе перезаписи URL, чтобы включить исходный Url. – 2008-12-08 01:54:35

0

Насколько я знаю, это будет по дизайну, поскольку IIS только когда-либо получает переписанный URL-адрес, а не оригнал, поскольку переписанный URL-адрес отправляется в приложение .Net и его приложение, которое дозирует преобразование.

+0

Исходный перевод URL-адресов регистрировал URL-адрес «запрошенный», а не переписанный URL-адрес. Так что есть способ сделать это, я просто не уверен, что. – 2008-12-08 01:53:33

2

Переписывает ли URL-адрес модуль? Если это так, возможно, модуль перезаписи будет запущен до модуля протоколирования. Вы можете изменить порядок работы модулей в диспетчере IIS. Перейдите в Модули в диспетчере IIS и выберите Просмотреть список ...; то вы можете перемещать модули вверх и вниз в нужном порядке.

0

Этот вопрос является duplicate.

У меня была такая же проблема. Один из способов - использовать Server.Transfer вместо Context.RewritePath. Server.Transfer не перезапускает весь жизненный цикл страницы, поэтому исходный URL-адрес все равно будет регистрироваться. Обязательно передайте «true» для параметра «preserveForm», чтобы коллекции QueryString и Form были доступны на второй странице.

Смежные вопросы