1

私はこれを機能させようとしています。クエリ文字列から読み取り、いくつかの手順を実行する DNN モジュールがあります。そのすべてがうまく機能しています。今、クエリ文字列の読み取り中に URL をクリーンアップしようとしています

現在、URL は次のようになっています。

http://mysite.website.com/?pid=1234

私はそれが次のようになりたい:

http://mysite.website.com/1234

このようなことは可能ですか?

4

4 に答える 4

1

DotNetNuke 用の適切な書き換えソリューションを使用する方がはるかに優れています (たとえば、iFinity UrlMaster や他にもあります...)。

次に、モジュールのカスタム URL プロバイダーを作成できます。

これは、記事モジュールの一部を書き直すために自分のサイトで行ったことです (例: www.ventrian.com/blog/

urlmaster の詳細については、次を参照してください。

http://www.ifinity.com.au/Products/Url_Master_DNN_SEO_Urls

于 2012-09-30T10:10:52.713 に答える
0

HttpModule を使用すると、DNN とまったく対話せずに、探していることを達成できます。このような種類:

public class PidRewriteModule : System.Web.IHttpModule
{
    public void Dispose()
    {
    }

    public void Init(System.Web.HttpApplication context)
    {
        context.BeginRequest += new EventHandler(context_BeginRequest);
    }

    void context_BeginRequest(object sender, EventArgs e)
    {
        HttpApplication app = sender as HttpApplication;

        if (app != null)
        {
            Match mPidCheck = new Regex(@"^/(?<pid>[0-9]+)/?$").Match(app.Context.Request.Url.AbsolutePath);
            if (mPidCheck.Success)
            {
                app.Context.RewritePath("~/default.aspx", String.Empty, String.Concat("pid=", mPidCheck.Groups["pid"].Value));
            }
        }
        else
            return;
    }
}

次に、これを Web.config に追加できます。

<modules runAllManagedModulesForAllRequests="true">
    <add name="PidRewriteModule" type="Assembly.Namespace.PidRewriteModule, Assembly"/>
</modules>

これを system.webServer ノードに入れます。Assembly と Namespace をそれぞれ置き換えます。

この情報はすべて IIS7 用です。IIS 6 の場合もまったく違いはありませんが、以前の実装では ISAPI フィルターのルートをたどる必要がありました。

于 2012-09-30T08:41:56.380 に答える
0

いくつかの選択肢があります:

  1. DNN で利用可能な書き換え機能とその使用方法を調べます。これらは、[ホスト設定] > [詳細設定] > [フレンドリ URL 設定] にあります。または、作業している IIS のバージョンに基づいて 2 番目のオプションを使用します。

2a. IIS 7 以降の URL 書き換えモジュール

2b. HeliconTech の「ISAPI_Rewrite 3」 (無料版もあり、かなりうまく機能します)

于 2012-09-30T06:43:57.513 に答える
0

URL Rewriter モジュールの使用を見てください。IIS6 用のサードパーティ製のものはいくつかありますが、Microsoft は IIS7 および IIS7.5 用のものを提供しています。基本的には正規表現で構成し、出力を変更します。

IIS7 用の Microsoft の書き換えモジュールは、http ://www.iis.net/downloads/microsoft/url-rewrite で入手できます。

于 2012-09-30T06:25:30.247 に答える