小编Joh*_*ins的帖子

另外登录ASP.NET站点的查询字符串

几年前,我创建了一个数据库驱动的ASP.NET站点,该站点使用单个APSX页面显示所有站点页面.因此,该网站的所有网址都采用以下格式:

/main.aspx?page=Page+Title+One

/main.aspx?page=Another+Article+Title

/main.aspx?page=Third+Page
Run Code Online (Sandbox Code Playgroud)

main.aspx页面获取查询字符串数据(例如,Page + Title + One),并将其用作从SQL Server数据库中提取相应文章内容的键.页面的实际标题存储在带空格而不是加号的数据库中(例如"Page Title One").

在URL查询字符串中使用+号作为单词分隔符的糟糕决定导致最近搜索引擎出现很多问题(重复内容等),因此我想修复它,但不更改URL.

我想要做的是当搜索引擎或访问者试图访问错误的URL时,错过+符号并改为使用空格,例如:

/main.aspx?page=Page Title One
Run Code Online (Sandbox Code Playgroud)

我想做301永久重定向到:

/main.aspx?page=Page+Title+One
Run Code Online (Sandbox Code Playgroud)

为了能够做到这一点,我需要检查查询字符串值是否有加号或空格,但是当我使用Request.QueryString ["page"]得到值时,即使实际的问题字符串已经加入,我仍然得到字符串白色空间"页面标题一".

该站点在IIS6/Win 2003上运行.

我怎样才能做到这一点?

c# special-characters request.querystring

11
推荐指数
2
解决办法
7317
查看次数