Перезапись URL-адреса iis7 — необязательные параметры строки запроса

Я использую модуль iis7 URL Rewrite, и он работает нормально, за исключением двух моментов. Будучи новичком в этом, я мог упустить что-то очевидное. 1) Мой URL преобразуется из www.mysite.com/search.aspx?fName=John&sName=Smith в www.mysite.com/John/Smith. Это работает нормально, но если я добавлю завершающий / , несколько изображений на сайте исчезнут, а некоторые нет. (Они все в одном месте). Тем не менее, результаты поиска в порядке.

2) Можно ли сделать некоторые строки запросов необязательными? На стороне сервера это реализовано (т.е. если ничего не вводится, то принимается значение по умолчанию). Но как это будет работать с модулем перезаписи URL? например www.mysite.com/John будет искать John и использовать значение по умолчанию для параметра sName.

Спасибо за любую помощь.


person keyboardP    schedule 09.03.2010    source источник
comment
у меня такая же проблема, которую вы объясняете в пункте 1.   -  person Hiral    schedule 14.03.2013
comment
Принятый ответ показывает, как я исправил первый вопрос.   -  person keyboardP    schedule 14.03.2013
comment
извините, я понимаю вашу вторую точку как проблему, но она работает правильно с 2 строками запроса, но не с 3 :(   -  person Hiral    schedule 14.03.2013


Ответы (1)


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

Как вы объявляете пути к изображениям в своей разметке? Если вы используете относительные пути (например, src="../Images/someimage.png"), то добавление косой черты к URL-адресу сообщает браузеру, что папка /Images/ находится в папке /John/, а не в корне сайта.

Если вы используете HTML-теги <img />, вам следует предпочесть виртуальный путь: src="/Images/someimage.png" — это говорит браузеру запрашивать путь к изображению из корня вашего сайта.

Если ваше приложение не запущено в корне сайта, вы также можете использовать файл ResolveUrl, который является частью страницы и дерева объектов управления, это позволяет вам передать виртуальный путь в форме ~/Images/someimage.png, и платформа определит, какой правильный путь должен быть быть.

person Zhaph - Ben Duguid    schedule 09.03.2010
comment
Не могу поверить, что я пропустил это. Я смотрел не на ту главную страницу, на которой те же кнопки, только в другом положении. Д'ух! Спасибо, проблема с изображением решена. - person keyboardP; 10.03.2010
comment
Мне удалось переписать часть 2, добавив еще одно правило и используя URL-адрес без дополнительных параметров в качестве шаблона. Затем на сервере я просто проверял каждый параметр и, если он отсутствовал, присваивал ему значение по умолчанию. - person keyboardP; 10.03.2010