SEO URL重写ASP.NET
我已经有了一个ASP.NET网站 我想改变我的网站,使之更加SEO url友好 我想更改示例。此站点: www.mydomain.aspx?articleID=5 致: www.mydomain/article/learningURLrewrite -articlename需要从DB中读取 我如何做到这一点 我已经尝试过谷歌的一些文章,其中提到IhttpModule,但没有任何运气 我的目标是让一个类负责基于folderpath的重定向(如下所示):SEO URL重写ASP.NET,asp.net,url-rewriting,seo,Asp.net,Url Rewriting,Seo,我已经有了一个ASP.NET网站 我想改变我的网站,使之更加SEO url友好 我想更改示例。此站点: www.mydomain.aspx?articleID=5 致: www.mydomain/article/learningURLrewrite -articlename需要从DB中读取 我如何做到这一点 我已经尝试过谷歌的一些文章,其中提到IhttpModule,但没有任何运气 我的目标是让一个类负责基于folderpath的重定向(如下所示): 此外,我还想删除aspx扩展这篇文章准确地告
此外,我还想删除aspx扩展这篇文章准确地告诉您如何使用asp.net 4的路由引擎-试一试-如果您在实现它时遇到特定问题,请告诉我们 因为您需要特定的参数用法,所以可以定义要发送到页面的参数。为此,请参见: 及
如果您使用的是ASP.NET 4,那么您应该研究URL路由。您最终将设置自定义路由,如下所示:
routes.MapPageRoute(
"View Article", // Route name
"Articles/{*ArticleName}", // Route URL
"~/Articles.aspx" // Web page to handle route
);
Page.GetRouteUrl("View Article", new { ArticleName= NAMEFROMDATABASE });
你可以这样写下新的链接:
routes.MapPageRoute(
"View Article", // Route name
"Articles/{*ArticleName}", // Route URL
"~/Articles.aspx" // Web page to handle route
);
Page.GetRouteUrl("View Article", new { ArticleName= NAMEFROMDATABASE });
不幸的是,我不会给你一个如何构建整个网站的摘要,但有两个真正好的起点是,一个在上。你也可以在ASP.NET WebForms中使用路由 这些步骤是:
//In Global.asax
void Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.MapPageRoute("My Routename", "{*name}", "~/Article.aspx");
}
string folderpath = "my folderpath" (could be articles, products etc.)
string id = Request.QueryString["id"].ToString();
if(folderpath.equals("articles"))
{
string name = //find name from id in DB
//redirect user to www.mydomain/article/name
}
if(folderpath.equals("products"))
{
string name = //find name from id in DB
//redirect user to www.mydomain/products/name
}
public void Page_Load(object sender, EventArgs e)
{
var thePath = RouteData.Values["name"];
// Lookup the path in the database...
}
如果您使用的是.net 3.5或更低版本,则可以使用这些 我在所有用.NET3.5制作的项目中都使用了第二个 如果使用.NET4.0,则可以执行以下操作
appSettings
标记下方
<rewriter configSource="URLRewriter.config"/>
然后在查询字符串中获得项目名称,如下所示
string articlename = Request.QueryString["articlename"];
string articleName = "TestArticle";
lnkMenuLink.NavigateUrl = string.Format(ConfigurationSettings.AppSettings["ArticalDetailsURL"], articleName);
以及要将链接放置到文章的网站的菜单或其他位置,您可以在AppSettings中添加一个链接,以便以后如果您要更改url模式,可以仅从配置中轻松更改它
<add key ="ArticalDetailsURL" value="/article/{0}" />
感谢和问候
Harsh Baid您能告诉我您使用的是哪个版本的iis吗?请告诉我.net framework的版本。。Bcoz答案取决于这些。忘了提到它是.NET3.0。我找到了这个网站,它建议创建一个处理重写的类。我想我会这样做,并在每次用户发送请求时调用数据库获取id。如果有更好的方法,请让我知道。检查更新的答案-我已经为第二个提供了代码示例,这对您有用吗?