几年前,我创建了一个数据库驱动的ASP.NET网站,它使用单个APSX页面来显示所有网站页面。因此,网站的所有网址都采用以下格式:加号登录ASP.NET网站的查询字符串
/main.aspx?page=Page+Title+One
/main.aspx?page=Another+Article+Title
/main.aspx?page=Third+Page
的main.aspx页面获取查询字符串数据(页+标题+一个例如),并使用它作为一个重点来拉动适当的文章来自SQL服务器数据库的内容。页面的实际标题以空格而不是加号存储在数据库中(例如“页面标题一”)。
在URL查询字符串中使用+号作为分隔符的糟糕决定最近导致搜索引擎出现很多问题(重复的内容等),所以我想修复它,但不更改URL 。
我想要做的是,当搜索引擎或访客试图访问错误的URL中缺少的+号,并具有白色空格代替,例如:
/main.aspx?page=Page Title One
我想要做301永久重定向到:
/main.aspx?page=Page+Title+One
为了能够做到这一点,我需要检查,如果查询字符串值有加号或空格,但是当我得到的Request.QueryString [“页”]的值即使实际quesry字符串有加上它我仍然得到字符串与白色空间“页标题一”。
该网站在IIS6/Win 2003上运行。
我该怎么做?
我的网址一直只使用加号而不是空白或%20,但是我在Google中看到缓存页面,如下所示2:/main.aspx?page=KW1 KW2和/main.aspx?page=KW1% 20KW2,这两个都是错误的,并导致重复的内容问题。现在我想将它们301添加到/main.aspx?page=KW1+KW2的正确URL中。 – 2011-12-21 20:48:45
这就是我正在解释的。不知道什么是不明确的,所以添加了希望解释的代码示例。 – 2011-12-21 20:59:24
感谢Jon,这正是我需要的:)。我如何将问题标记为已回答? – 2011-12-21 21:08:56