我正在创建一个关于书籍的网站,并且用户通过遍历主题,然后是类别然后是子类别来到达他/她想要的书。
像往常一样,我制作的网页使用像这样的查询字符串
www.mywebsite.com/subjects.aspx?subjectid=10
主观指的是其中一个主题。
用户选择了类别,然后选择子类别并到达书籍。现在,所有内容都由它的id引用,而不是由它的名称引用。
现在我的问题是搜索引擎不知道有多少子主题,并且主题名称不能从ID中理解。
当我尝试使用Google自定义搜索并传递到我网站的网址时,它并未深入到图书级别,而是保留在主网址www.mywebsite.com上。
我看到有一些网站有这样的网址:
他们真的为每篇文章创建了一个单独的aspx页面吗?
我可能无法让人们理解我想要的东西因为我刚开始使用asp.net所以请认为它与SEO有关。
如果需要澄清,请发表评论并编辑问题。
编辑1 :就在我发布此问题时,我注意到它也创建了类似的页面类型:
http://stackoverflow.com/questions/5581873/seo-layout-of-the-website
现在,这是一个新文件夹“seo-layout-of-the-website”!
编辑:2 因此,我认为网址重写是我需要的。一个教程中给出的示例表明,对于以下网址:
http://www.store.com/products.aspx?category=books
http://www.store.com/products.aspx?category=DVDs
http://www.store.com/products.aspx?category=CDs
我可以将它们重定向到
http://www.store.com/products.aspx/Books
http://www.store.com/products.aspx/DVDs
http://www.store.com/products.aspx/CDs
但在我的情况下,我使用的是ID,这是否意味着我应该使用名称(subject.aspx?subjectname = abcd而不是subject.aspx?subjectid = 123)?
答案 0 :(得分:2)
网址重写是您正在寻找的。所以你可以转换你的网址:
www.mywebsite.com/subjects.aspx?subjectid=10
为:
www.mywebsite.com/subject/10
通过添加路线。如果您使用的是ASP.NET 4,则可以轻松完成。在Global.asax.cs
文件中,在Application_Start
函数中定义以下内容:
using System.Web.Routing;
protected void Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.MapPageRoute(
"SubjectRoute",
"subject/{subjectId}",
"~/subjects.aspx"
);
}
在subjects.aspx.cs
中,使用以下内容获取值:
if (Page.RouteData.Values["subjectId"] != null)
{
var mySubjectId = Page.RouteData.Values["subjectId"].ToString());
}
答案 1 :(得分:0)
不,他们不会为SEO目的创建新页面。我们大多数人所做的是重写htaccess或apache文件中的URL规则。我不知道它在asp中是如何工作的