0

IIS 8 の ASP.NET (4) に新しいサイトがあります。

以前のサイト (クエリ文字列を含む) からのレガシー php リンクを新しいページ (わかりやすい URL を持つようになりました) にリダイレクトする必要があります。PHP ページは多くのリダイレクトで同じですが、クエリ文字列のみが変更されます (例: id=6)。

例: site.com/page.php?id=6 > site.com/an-article site.com/page.php?id=7 > site.com/another-article

これを行う最も簡単で迅速な方法は何ですか?

4

2 に答える 2

0

データベースで古いリンクと新しいリンクを管理します。OldLink、NewLink をデータベースに格納します。そして、App_start のキャッシュ内のすべてのリストをロードして、後続のすべてのリクエストでアクセスできるようにします。

これには URL の書き換えが必要です。

global.asax で作業する必要があります

application_beginrequest メソッドで、URL 書き換えロジックを記述します

例えば

string aspxurl = string.Empty;
string querystring = string.Empty;
string[] strTmpQuery = System.Web.HttpContext.Current.Request.RawUrl.Split('?');
if(strTmpQuery[0].Endswith(".php"))
{
  aspxurl = strTmpQuery[0].Substring(0,strTmpQuery[0].Length-4) + ".aspx";
}

if(strTmpQuery.Length>1 && strTmpQuery[1].Trim() != "")
{
querystring = strTmpQuery[1];
}
System.Web.HttpContext.Current.RewritePath(aspxurl, "", querystring);

注 : IIS が PHP ファイルの要求を .net エンジンに送信するように、web.config を微調整する必要があります。URL 書き換え用の HttpModule/HttpHandler を探します

于 2013-10-08T05:26:32.513 に答える