Как я могу переслать URL на соответствующую страницу? - PullRequest
3 голосов
/ 03 февраля 2010

Как я могу переслать URL, например:

http://www.mysite.com/Join

на соответствующую страницу:

http://www.mysite.com/JoinOptions/MemberRegistration.aspx

Есть ли способ сделать это?

Я использую CMS DNN, но если вы не знакомы с DNN и у вас есть решение для перенаправления, которое будет полезно.

Спасибо,
Matt

Ответы [ 6 ]

4 голосов
/ 03 февраля 2010

Вы можете создать «дружественное правило URL» в DNN. На странице «Настройки хоста» откройте раздел «Дружественный URL» в разделе «Дополнительные настройки». Оттуда вы можете добавить новое правило, которое соответствует .*/Join/Default.aspx и заменяет его на ~/JoinOptions/MemberRegistration.aspx (я уверен, что использование этого стиля URL будет работать, но я знаю , что вы можете заменить URL вроде ~/Default.aspx?tabid=423).

Используя эту схему, вам нужно убедиться, что IIS позволяет ASP.NET обрабатывать запрос. Самый простой способ сделать это - добавить папку «Join» в файловую систему с файлом Default.aspx.

1 голос
/ 03 февраля 2010

Когда-то мы использовали модуль DNN от SnowCovered, вы можете получить его здесь: http://www.snowcovered.com/Snowcovered2/Default.aspx?tabid=242&PackageID=7262

Это $ 15, но он будет делать то, что вам нужно, без какой-либо кодировки.

Вы создадите страницу с именем /Join и перенаправите ее на /JoinOptions/MemberRegistration.aspx

.
0 голосов
/ 24 февраля 2010

Еще один вариант.Вероятно, немного больше взлома, чем принятый ответ.

Включить сопоставление с подстановочными знаками в IIS

Это позволяет работать URL-адресам без расширений (например, http://yoursite.com/Join)

  1. Веб-сайт -> щелчок правой кнопкой мыши -> свойства
  2. Вкладка домашнего каталога -> конфигурация
  3. Вкладка сопоставления -> раздел с подстановочными знаками -> "insert"
  4. Перейдите к aspnet_isapi.dll (см. Пример пути ниже) -> выберите файл
  5. снимите флажок «проверить, существует ли файл»
  6. ОК, хорошо, хорошо, хорошо, пока не закончите -> закройте окно IIS * 1021.*

Создайте страницу в DNN с именем «Join» и перенаправьте ее на нужную страницу.

Добавьте страницу с именем / названием Join, установите для нее не показ.в меню и установите для него значение 301, перенаправьте на нужный URL-адрес (это все параметры в настройках страницы)

* обычно что-то вроде C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \aspnet_isapi.dll

0 голосов
/ 03 февраля 2010

Если вы используете IIS, вы можете использовать инструмент ISAPI_Rewrite3. .Htaccess для сайта будет:

RewriteBase /
RewriteRule ^Join/?$ JoinOptions/MemberRegistration.aspx [NC,R=301,L]
0 голосов
/ 03 февраля 2010

На самом деле, не касаясь IIS и не тратя денег, вы можете сделать это с небольшой хитростью.

  1. Создайте папку с именем JOIN в корне
  2. Добавьте в нее страницу с именем default.aspx
  3. и добавьте код ниже

    Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
    
        Dim DomainName As String = Null.NullString
            Dim ServerPath As String
            Dim URL() As String
            Dim intURL As Integer
    
            ' parse the Request URL into a Domain Name token 
            URL = Split(Request.Url.ToString(), "/")
            For intURL = 2 To URL.GetUpperBound(0)
                Select Case URL(intURL).ToLower
                    Case "admin", "desktopmodules", "mobilemodules", "premiummodules"
                        Exit For
                    Case Else
                        ' check if filename
                        If InStr(1, URL(intURL), ".aspx") = 0 Then
                            DomainName = DomainName & IIf(DomainName <> "", "/", "") & URL(intURL)
                        Else
                            Exit For
                        End If
                End Select
            Next intURL
    
            ' format the Request.ApplicationPath
            ServerPath = Request.ApplicationPath
            If Mid(ServerPath, Len(ServerPath), 1) <> "/" Then
                ServerPath = ServerPath & "/"
            End If
    
            DomainName = ServerPath & "JoinOptions/MemberRegistration.aspx"
    
            Response.Redirect(DomainName,True)
    
    End Sub
    

Если вы измените имя страницы, вам придется заново отредактировать файл, но он работает

примечание: возможно, придется заменить усилитель Amersan фактическим амперсандом

0 голосов
/ 03 февраля 2010

Если вы используете Apache, вы можете создать или отредактировать существующий файл .htaccess, содержащий:

RewriteEngine on
redirect 301 /Join http://www.mysite.com/JoinOptions/MemberRegistration.aspx

И поместите его в корневой каталог (каталог, на который указывает http://www.mysite.com/) В дополнение к этому может быть полезно прочитать файлы Apache .htaccess и mod_rewrite .

Редактировать: Упс. Не проверял теги.

...