【问题标题】:How can I encode a query string with htaccess如何使用 htaccess 对查询字符串进行编码
【发布时间】:2017-02-08 01:10:13
【问题描述】:

我要重定向

http://myoldsite.com/page?query=some+arguments&some_more

'http://mynewsite.com/?notfound=' + urlencode('page?query=some+arguments&some_more')

单独使用 htaccess 可以吗?

【问题讨论】:

  • 你能分享你的尝试吗?

标签: .htaccess redirect query-string


【解决方案1】:

您可以使用B and NE flags 的组合来转义反向引用:

RewriteEngine On

RewriteCond %{QUERY_STRING} .+
RewriteRule ^page/?$ /?notfound=$0\%3f%0 [L,NC,R=302,B,NE]

【讨论】:

  • 这听起来很有希望——我没有意识到 NE 和 B 可以结合起来。这里没有B会是什么结果?
  • 呃,我是想问问NE。否则哪个东西会被编码两次?
  • 如果没有NE,Apache 将对查询字符串进行两次编码。第一次在%0 中捕获文本,第二次在重定向时(如果NE 不存在)。
  • 那么在没有NE的情况下使用B就没有意义了吗?
  • 我想说,在使用R 标志进行外部重定向时,使用NE 标志(B 或不使用B)几乎总是有意义的。
猜你喜欢
  • 2014-01-20
  • 1970-01-01
  • 2018-10-21
  • 2012-09-18
  • 2017-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-02
相关资源
最近更新 更多