1

URLの書き換えを使用する必要があるasp.netWebサイトがあるので、HTTPモジュールを作成し、それを実装しました。これは正しく機能します。唯一の問題は、ページが対応するアドレスにリダイレクトされる場合、画像とスタイルが読み込まれていない。

これがhttpモジュールです:

//BeginRequestイベントハンドラー。

private void Application_BeginRequest(Object source, EventArgs e)
{
    HttpApplication application = (HttpApplication)source;
    string URL = application.Request.Url.ToString();
    //int pid = Convert.ToInt32(application.Request.QueryString["pid"]);

    if ((URL.ToLower().Contains(".aspx"))
        || (URL.ToLower().Contains(".js"))
        || (URL.ToLower().Contains(".css"))
        || (URL.ToLower().Contains(".gif"))
        || (URL.ToLower().Contains(".png"))
        || (URL.ToLower().Contains(".jpeg"))
        || (URL.ToLower().Contains(".jpe"))
        || (URL.ToLower().Contains(".jpg"))
        || (URL.ToLower().Contains(".ashx")))
        return;
    else
    {
        string mname = URL.Substring(URL.LastIndexOf("/") + 1).ToString();

        Merchand ms = merchantDB.GetMerchant(mname);

        HttpContext context = application.Context;
        if (ms != null)
        {

            string url = "~/pages/Merchant.aspx?mid=" + ms.MerchandID + "&catid=" + ms.MainCategory + "&subcatid=0";
            context.RewritePath(VirtualPathUtility.ToAppRelative(url));
        }
        else
        {
            //("");
            string url = "~/pages/default.aspx";
            context.RewritePath(VirtualPathUtility.ToAppRelative(url));
        }
    }

}

通常のURLからページを開くと正常に開きますが、URLを使用すると、画像やスタイルがない状態でページを書き換えて開きます。

Firebugを開くと、cssとjavascriptが見つからないというエラーが表示されます

4

1 に答える 1

1

IISで書き換えを機能させるには、次の手順を実行します。

  1. system.webserverタグのweb.configにhttpmoduleを登録します。
<modules>
<add name="Rewrite" type="Rewrite"/>
</modules>
  1. これを変更します:context.RewritePath(VirtualPathUtility.ToAppRelative(url)); これに:context.RewritePath(url、false);
  2. 画像をサーバーで実行し、パスを〜/ images/imagenameとして配置します
于 2012-10-29T10:58:46.653 に答える