【问题标题】:URL Rewrite keep %20 in Query StringURL 重写在查询字符串中保留 %20
【发布时间】:2015-08-07 16:13:31
【问题描述】:

我正在尝试制定一个重写规则以将我网站上的所有 pdf 移动到特定页面,然后使用查询字符串作为 pdf 的当前文件路径在字典中查找以查看该 url 是否是如果将它们重定向到正确的页面,则在我的字典中。问题是我的 url 字典有 %20,当我拉出查询字符串时,它会将 %20 变成一个空格。感谢您的所有帮助。

你能重写它以在查询字符串中保留 %20 吗?

示例网址:/example/example/Big%20Small%20Something%20Pad.pdf

我的重写:

RewriteRule ([^/]*)\.pdf$  /redirectPDF.aspx?pdf=$1.pdf [NE,QSA]

当前查询字符串输出:Big Small Something Pad.pdf

我希望它看起来像Big%20Small%20Someting%20Pad.pdf

【问题讨论】:

  • 您使用的是 ISAPI 还是 Apache?
  • 想想你的“字典”在文件名中有文字%20的问题......你能不能在字典中查找参数值之前简单地对参数值进行URL编码?您使用的是什么服务器端语言?
  • 我正在使用 asp.net / c# ...是的,这可以完成,但我只是认为重写可以处理这个问题。
  • 我不知道asp.net/C#在这方面是否像PHP,但PHP本身的URL解码参数值(%20空格),但是,PHP 中还有其他变量保存原始(% 编码)请求。

标签: .htaccess iis rewrite query-string


【解决方案1】:

尝试删除NE 标志。根据 ISAPI 文档:
http://www.helicontech.com/isapi_rewrite/doc/RewriteRule.htm:

noescape|NE

不要转义输出。默认情况下,ISAPI_Rewrite 会将所有非 ANSI >字符编码为输出中的 %xx 十六进制代码。

所以看起来您只是想省略 NE 以便它会像默认情况下那样对输出进行编码。

RewriteRule ([^/]*)\.pdf$  /redirectPDF.aspx?pdf=$1.pdf [QSA]

【讨论】:

  • 这是我尝试的第一件事,但它不起作用。
猜你喜欢
  • 2017-06-09
  • 1970-01-01
  • 1970-01-01
  • 2014-06-09
  • 1970-01-01
  • 2011-08-02
  • 2012-01-18
  • 1970-01-01
相关资源
最近更新 更多