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);

注意:您必须调整 web.config,以便 IIS 将 PHP 文件请求发送到 .net 引擎。寻找 HttpModule/HttpHandler 进行 url 重写

于 2013-10-08T05:26:32.513 回答
0

您将要构建新的 .net 链接并使用该链接向用户发送 HTTP 301:

header('HTTP/1.1 301 Moved Permanently');
header('Location: ' . $url);
die();

“url”变量是您网站的新翻译 url。

于 2013-10-08T03:25:40.303 回答