3

次のようなURLを転送するにはどうすればよいですか。

http://www.mysite.com/Join

適切なページへ:

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

これを行う方法はありますか?

私はDNNCMSを使用していますが、DNNに慣れておらず、リダイレクトの解決策がある場合は、それが役立ちます。

ありがとう、
マット

4

6 に答える 6

4

DNN内に「わかりやすいURLルール」を作成できます。[ホスト設定]ページで、[詳細設定]セクション内の[フレンドリURL]セクションを開きます。そこから、それに一致.*/Join/Default.aspxして置き換える新しいルールを追加できます~/JoinOptions/MemberRegistration.aspx(そのスタイルのURLを使用しても機能すると確信していますが、のようなURLに置き換えることができることはわかっ~/Default.aspx?tabid=423ています)。

このスキームを使用して、IISがASP.NETに要求を処理させることを確認する必要があります。これを行う最も簡単な方法は、Default.aspxというファイルを使用してファイルシステムに「Join」フォルダーを追加することです。

于 2010-02-03T13:59:49.050 に答える
1

SnowCoveredのDNNモジュールを使用したことがありますが、ここで入手できます:http ://www.snowcovered.com/Snowcovered2/Default.aspx?tabid=242&PackageID=7262

15ドルですが、コーディングなしで必要なことを実行できます。

次のようなページを作成し、/Joinにリダイレクトします/JoinOptions/MemberRegistration.aspx

于 2010-02-02T22:14:36.183 に答える
0

Apacheを使用している場合は、以下を含む既存の.htaccessファイルを作成または編集できます。

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

そして、それをルートディレクトリ(http://www.mysite.com/が指すディレクトリ)に配置します。これに加えて、Apache.htaccessファイルmod_rewriteを読むと便利な場合があります。

編集:おっと。タグをチェックしませんでした。

于 2010-02-02T22:07:56.683 に答える
0

実際、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
    

ページ名を変更した場合、ファイルを再編集する必要がありますが、機能します

注:アメルサンアンプを実際のアンパサンドに交換する必要がある場合があります

于 2010-02-02T23:09:01.130 に答える
0

IISを使用している場合は、ISAPI_Rewrite3ツールを使用できます。サイトの.htaccessは次のようになります。

RewriteBase /
RewriteRule ^Join/?$ JoinOptions/MemberRegistration.aspx [NC,R=301,L]
于 2010-02-03T07:22:23.870 に答える
0

さらに別のオプション。おそらく、受け入れられた答えよりも少しハックです。

IISでワイルドカードマッピングを有効にする

これにより、拡張子のないURLが機能します(例: http: //yoursite.com/Join

  1. Webサイト->右クリック->プロパティ
  2. [ホームディレクトリ]タブ->構成
  3. [マッピング]タブ->ワイルドカードセクション->[挿入]
  4. aspnet_isapi.dllを参照します(以下のパスの例を参照)->ファイルを選択します
  5. [ファイルが存在することを確認する]チェックボックスをオフにします
  6. ok okokok完了するまで->IISウィンドウを閉じる

DNNに「参加」というページを作成し、目的のページにリダイレクトします

参加という名前/タイトルのページを追加し、メニューに表示されないように設定し、目的のURLに301リダイレクトするように設定します(これらはすべてページの設定のオプションです)

*通常はC:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727\aspnet_isapi.dllのようなもの

于 2010-02-24T04:24:34.147 に答える