Вернуться   Форум программистов > Форум Программирование > Форум .NET > Форум ASP.NET

ASP.NET

Программирование ASP.NET

Ответ
 
Старый 06.06.2007, 16:33   #1
lite
Новичок
 
Регистрация: 05.03.2006
Сообщений: 25
lite пока не определено
По умолчанию ASP.NET url rewrite

Как сделать так чтобы на моем сайте адрес в строке запроса страницы http://.../page.aspx http://.../page.aspx выглядел бы так http://.../page.aspx http://.../page и чтобы если пользователь набрал в строке запроса http://.../page.aspx http://.../page то ему бы открылась http://.../page.aspx http://.../page.aspx?
Заранее спасибо.
lite вне форума  
Старый 06.06.2007, 17:02   #2
bazile
Местный
 
Регистрация: 05.01.2001
Сообщений: 6,924
bazile пока не определено
По умолчанию RE: URL Rewriting

Для этого надо использовать перезапись URL. Смотри например http://cheeso.members.winisp.net/IIRF.aspx Ionic's ISAPI Rewrite Filter
bazile вне форума  
Старый 06.06.2007, 17:06   #3
lite
Новичок
 
Регистрация: 05.03.2006
Сообщений: 25
lite пока не определено
По умолчанию RE: URL Rewriting

А можно ли это делать средствами asp.net?
lite вне форума  
Старый 06.06.2007, 17:54   #4
bazile
Местный
 
Регистрация: 05.01.2001
Сообщений: 6,924
bazile пока не определено
По умолчанию RE: URL Rewriting

Можно. Набери в google ASP.NET url rewrite.
bazile вне форума  
Старый 08.06.2007, 14:36   #5
lite
Новичок
 
Регистрация: 05.03.2006
Сообщений: 25
lite пока не определено
По умолчанию RE: URL Rewriting

Я читала Url Rewriting in ASP.NET
Только мне не совсем понятно куда именно в веб конфиге добавлять
<RewriterConfig>
<Rules>
...
</Rules>
</RewriterConfig>
И достаточно ли только этого или надо еще чтото?
</P><H1 class=dtH1><A name=urlrewriting> </H1>
lite вне форума  
Старый 08.06.2007, 14:45   #6
bazile
Местный
 
Регистрация: 05.01.2001
Сообщений: 6,924
bazile пока не определено
По умолчанию RE: URL Rewriting

Это нестандартная секция и в статье должно было быть указано где именно в web.config ее надо разместить. Могу только предположить, что это надо делать внутри тега <configuration>.
bazile вне форума  
Старый 09.06.2007, 16:26   #7
lite
Новичок
 
Регистрация: 05.03.2006
Сообщений: 25
lite пока не определено
По умолчанию RE: URL Rewriting

В том то и проблема что в статье этого не указано
lite вне форума  
Старый 09.06.2007, 16:57   #8
bazile
Местный
 
Регистрация: 05.01.2001
Сообщений: 6,924
bazile пока не определено
По умолчанию RE: URL Rewriting

Ссылку на статью можно увидеть?
bazile вне форума  
Старый 10.06.2007, 14:10   #9
lite
Новичок
 
Регистрация: 05.03.2006
Сообщений: 25
lite пока не определено
По умолчанию RE: URL Rewriting

http://msdn2.microsoft.com/en-us/library/ms972974.aspx
lite вне форума  
Старый 04.08.2007, 03:42   #10
gp
Новичок
 
Регистрация: 04.08.2007
Сообщений: 1
gp пока не определено
По умолчанию RE: URL Rewriting

Вот единственное, что работает как следует



http://www.urlrewriter.net/



В последних версиях получается сделать чтобы и AJAX работал, и темы, и все остальное.



Вот пример использования. (замените круглые скобки на галки XML в Web.config и в Rewriting.browser)



1. Договариваемся с хостингом, чтобы вам включили опцию "обрабатывать все запросы с помощью ASPNET".

Дело в том, что JPG, JS, PNG и проч. IIS обрабатывает сам, так что rewriting не сработает для этих файлов как надо. Но хуже всего то, что обработчик Default.aspx вызывается тоже самим IIS, так что запрос типа: ~/forums/aspnet/rewriting/ не спросит у рерайтера, а попытается обратиться к файлу Default.aspx из соотв. папки.



Результат этой операции - все запросы будут обрабатываться ASPNET.

Что это дает? Рерайтер сможет переписать любой путь. Можно даже полностью запретить прямое обращение к файлу с расширением ASPX помимо предусмотренного рерайтером пути.



Это может повлиять на производительность сайта и логику HTTP модулей. Например, если вы что-то делали с помощю модуля для всех ASPX страниц, то теперь это будет делаться и для JPG, и для HTML, тоесть и для статических файлов. Так что, например, без оглядки открывать в модуле сессию доступа к базе данных будет уже не кошерно.



Если вы не готовы к такому, то лучше рассмотрите технологию SES Urls, или предусмотрите URLS типа

~/articles/rewriting_with_aspx_fake_page/ShowPost.aspx

тоесть вы обманываете IIS - все что .aspx - перенаправляется на обработку ASPNET, и рерайтер может это обработать.



2. Конфигурация.



2.1 Цепляем сборку к проекту. Можно положить Intelligencia.UrlRewriter.dll в папку bin, или как вам удобнее.



2.2

Web.config



Приведу полный пример, почти из жизни.



(?xml version="1.0"?)(configuration)

(configSections)

(section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.Rewr iterConfigurationSectionHandler, Intelligencia.UrlRewriter"/)

(/configSections)



(rewriter)

(if header="HTTP_HOST" match="www.myparty.ru")

(redirect url="^~/.*" to="http://www.mysuperparty.ru" permanent="true"/)

(/if)

(if header="HTTP_HOST" match="myparty.ru")

(redirect url="^~/.*" to="http://www.mysuperparty.ru" permanent="true"/)

(/if)

(if header="HTTP_HOST" match="www.my-party.ru")

(redirect url="^~/.*" to="http://www.mysuperparty.ru" permanent="true"/)

(/if)

(if header="HTTP_HOST" match="my-party.ru")

(redirect url="^~/.*" to="http://www.mysuperparty.ru" permanent="true"/)

(/if)



(rewrite url="^~/$" to="~/Default3.aspx/" /)

(if url="^~/(vasya|masha).*")

(if url="^~/(w+)/(sex|drugs|rocknroll).*" /)

(!-- вся вечеринка здесь --)

(redirect url="^~(.*w+)$" to="~$1/"/) (!-- запрет URL без слеша в конце, очень важно! --)

(rewrite url="^~/(w+)/(w+)/$" to="~/use.aspx?what=$1&who=$2" processing="stop" /)

(/if)

(/if)

(/rewriter)



(system.web)

(httpModules)

(add type="Intelligencia.UrlRewriter.RewriterHttpModule , Intelligencia.UrlRewriter" name="UrlRewriter"/)

(/httpModules)

(/system.web)

(/configuration)



Очень рекоммендую использовать только полный разбор строки, с помощью $ в конце. Это избавит вас от очень многоих хлопот и ловли блох



2.2 Корректный postback - на тот же URL, с которого вы пришли. Если не использовать - то при постбеке ASPNET ут же вывалит вам свои отвратительные кишки (путь к обработчику с расширением ASPX в конце)

Важный пункт, которого нет на сайте urlrewriter.net (искал отдельно)



App_Browsers/Rewriting.browser



(browsers)

(browser refID=
gp вне форума  
Ads
Ответ
Опции темы

Похожие темы
Тема Автор
Возможно ли из iFrame обратитбся к контролу снаружи iFrame? ASP.NET
Имеется страница на которой есть текстбокс и iFrame. Возможно ли из страницы, загруженной в iFrame обратиться к текстбоксу, который находится снаружи iFrame? Если невозможно - ответьте НЕТ. Если...
evgenybe
ASP.NET Удалять запись в Гриде
В гриде есть колонка с CheckBox мне надо удалить все записи в которых CheckBox.Checked = true. Как проверить я знаю, но вот как удалить такие записи не могу понять.
Грифин
ASP.NET Отслеживание версии аппликации.
Как можно задавать номер версии Web-Application? Как можно получить программно доступ к номеру версии? Есть ли для этого какие-то встроенные возможности?
evgenybe
Скрипт поиска и скрипт голосование. ASP.NET
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <FONT size=3><FONT color=#000000><FONT face="Times New Roman Народ помогите найти пример скрипт поиска на сайте и скрипт голосование.<?xml:namespace...
Грифин
NoWrap для ASP.NET - e.Row.Cells[grid.SortColumn].Wrap = false;
В заголовке GridView стоит название таблицы и добавленная картинка, которая показывает направление сортировки столбца (картинка справа от надписи). При сортировке по убыванию соответствующая картинка...
RLZ
Параметры не на английском языке передаются неправильно. ASP.NET
Имеется аппликация написанная на одном из восточных языков. В одной из страниц в JavaScript открываем новое окно и в "хвост" URL цепляем QueryString, насколько параметров. В вызваном окне пытаемся...
evgenybe



Текущее время: 06:03. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.

Рейтинг@Mail.ru