Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Переписать адрес в браузере по желанию программист 
V
    Опции темы
alexburzak
  Дата 28.11.2007, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 254
Регистрация: 12.3.2007
Где: Hadera

Репутация: 1
Всего: 1



Какие есть программные способы, что бы переписать адрес в строке браузера?
Например было www.site.com/mypage.aspx а должно стать: www.site.com/yourpage.myhtml.
Еще раз не редерикт! А написания текста в по желанию программиста.
Есть программные способы у .NET?

PM   Вверх
Idsa
Дата 28.11.2007, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 15
Всего: 62



Если я правильно понял, тебе нужен url-rewriting. Его поддерживает и Apache, и IIS.


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Mymik
Дата 28.11.2007, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

Репутация: 50
Всего: 78



alexburzak, почитай про httpHandler (заюзай поиск, тут много раз поднимался этот вопрос.)


--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
alexburzak
  Дата 29.11.2007, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 254
Регистрация: 12.3.2007
Где: Hadera

Репутация: 1
Всего: 1



Цитата(Mymik @ 28.11.2007,  16:20)
alexburzak, почитай про httpHandler (заюзай поиск, тут много раз поднимался этот вопрос.)

 smile 
Спасибо за подсказку. Вот нашел: http://www.15seconds.com/issue/030522.htm
Пытаюсь понять и написать свой. Оставляю за собой право уточнить детали...  smile

Добавлено через 1 минуту и 37 секунд
Вот только по этому форуму ни разу не было подобного вопроса... (rewrite url)
PM   Вверх
Mymik
Дата 29.11.2007, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

Репутация: 50
Всего: 78



alexburzak, другой запрос надо ставить...
httpHandler


--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
alexburzak
  Дата 29.11.2007, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 254
Регистрация: 12.3.2007
Где: Hadera

Репутация: 1
Всего: 1



Цитата(Mymik @ 29.11.2007,  13:24)
alexburzak, другой запрос надо ставить...
httpHandler

 smile Согласен.
Вот уткнулся, не могу понять.
Сделал в Microsoft Visual Studio 2005 Handler, назвал его RewriteNET.ashx 
Код


<%@ WebHandler Language="VB" Class="Rewrite" %>

Imports System
Imports System.Web
Namespace RewriteNET
    Public Class Rewrite : Implements IHttpModule
        
        Public Sub Rewrite_BeginRequest(ByVal sender As Object, ByVal args As System.EventArgs)
            'process rules here
        End Sub

        Public Sub Dispose() Implements System.Web.IHttpModule.Dispose

        End Sub

        Public Sub Init(ByVal Appl As System.Web.HttpApplication) Implements System.Web.IHttpModule.Init
            AddHandler Appl.BeginRequest, AddressOf Me.Rewrite_BeginRequest
        End Sub
        
    End Class
End Namespace

В web.config:
Код

      <httpModules>
        <add type="RewriteNET.Rewrite,Rewrite" name="Rewrite"/>
      </httpModules>

Все это по материалам: http://www.15seconds.com/issue/030522.htm
Получаю ошибку: "Could not create type 'Rewrite' "
Где моя ошибка?  smile 
Плиз подскажите, что я делаю не так? 

Это сообщение отредактировал(а) Mymik - 29.11.2007, 16:47
PM   Вверх
Mymik
Дата 29.11.2007, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

Репутация: 50
Всего: 78



alexburzak, это не WebHandler должен быть. А должен быть C# class который надо хранить либо в App_Code либо в bin каталоге как подключаемая сборка. Именно в эти два места стучится asp.net чтобы достать переопределенные методы 

Это сообщение отредактировал(а) Mymik - 29.11.2007, 16:47


--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
alexburzak
  Дата 29.11.2007, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 254
Регистрация: 12.3.2007
Где: Hadera

Репутация: 1
Всего: 1



Цитата(Mymik @ 29.11.2007,  16:43)
alexburzak, это не WebHandler должен быть. А должен быть C# class который надо хранить либо в App_Code либо в bin каталоге как подключаемая сборка. Именно в эти два места стучится asp.net чтобы достать переопределенные методы

Спасибо, направил на правильный путь.
Для последующих поколений: обратить внимание есть мелкие не стыковки в коде, в примере , что я привожу и в линке, что я дал!
Код

Imports System
Imports System.Web
Namespace Rewrite.NET
    Public Class Rewrite : Implements IHttpModule
        Public Sub Rewrite_BeginRequest(ByVal sender As Object, ByVal args As System.EventArgs)
            'process rules here
            'cast the sender to an HttpApplication object
            Dim Appl As System.Web.HttpApplication = CType(sender, System.Web.HttpApplication)
            'load the settings in
            Dim SimpleSettings As System.Collections.Specialized.NameValueCollection = CType(System.Configuration.ConfigurationManager.GetSection("Rewrite.NET/SimpleSettings"), System.Collections.Specialized.NameValueCollection)
            'see if we have a match
            Dim x As Integer = 0
            Do While (x < SimpleSettings.Count)
                Dim source As String = SimpleSettings.GetKey(x)
                Dim dest As String = SimpleSettings.Get(x)
                If (Appl.Request.Path.ToLower = source.ToLower) Then
                    SendToNewUrl(dest, Appl)
                    Exit Sub
                End If
                x = (x + 1)
            Loop
        End Sub
        Public Sub SendToNewUrl(ByVal url As String, ByVal Appl As System.Web.HttpApplication)
            Appl.Context.RewritePath(url)
        End Sub
        Public Sub Dispose() Implements System.Web.IHttpModule.Dispose

        End Sub
        Public Sub Init(ByVal Appl As System.Web.HttpApplication) Implements System.Web.IHttpModule.Init
            AddHandler Appl.BeginRequest, AddressOf Me.Rewrite_BeginRequest
        End Sub
    End Class
End Namespace

Код

<configuration>
  <!--Start RewriteUrl-->
  <configSections>
    <sectionGroup name="Rewrite.NET">
      <section name="SimpleSettings" type="System.Configuration.NameValueSectionHandler"/>
    </sectionGroup>
  </configSections>
  <Rewrite.NET>
    <SimpleSettings>
      <add key="/NatArt/Test.aspx" value="/NatArt/WriteMyTest.aspx" />
    </SimpleSettings>
  </Rewrite.NET>
  <!--End RewriteUrl-->
    <appSettings/>
    <connectionStrings/>
    <system.web>
      <!--Start RewriteUrl-->
      <httpModules>
        <add type="Rewrite.NET.Rewrite" name="Rewrite.NET"/>
      </httpModules>
      <!--End RewriteUrl-->
.................

Теперь проблемы, которые не смог сам решить и надеюсь на помощь много уважаемых форумчан.
Во-первых сразу  вылезли предупреждения от web.config`a: «Message    3    Could not find schema information for the element 'add'.    C:\Inetpub\wwwroot\NatArt\web.config    19    8    C:\...\NatArt\»
Ладно, предупреждения, а не ошибки. Продолжаю работать, конечная цель рерайт адреса для пользователя. Запускаю в дебаге, вроде работает но в конце преподносит сюрприз. Просто браузер пытается перенаправить меня на эту страницу… (/NatArt/WriteMyTest.aspx), хотя я хотел ПЕРЕПИСАТЬ адрес и вызывал Appl.Context.RewritePath(url) 
Плиз скажите где здесь грабли?  smile  smile  smile  smile 
PM   Вверх
alexburzak
  Дата 3.12.2007, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 254
Регистрация: 12.3.2007
Где: Hadera

Репутация: 1
Всего: 1



 smile Блин грабли у меня в голове.
Видемо совсем запрограммировался..  smile 
Все оказалось просто в "/NatArt/Test.aspx" что я хочу, что бы было написанно.
А в "/NatArt/WriteMyTest.aspx" Куда я хочу направить пользователя.
А я думал наоборот  smile (самаму себе)
Спасибо Mymik`у дал намеки на решения и + ему.
Вопрос решен.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0533 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.