查询字符串中带有锐字符的apache重定向规则
我有一个表单的旧url:。构建url的人并不意味着尖锐字符是页面的实际锚定符,它是title param值内的特殊字符;标题实际上是“foobar#9” 现在我需要创建一个重写规则。使用以下命令:查询字符串中带有锐字符的apache重定向规则,apache,redirect,url-rewriting,special-characters,Apache,Redirect,Url Rewriting,Special Characters,我有一个表单的旧url:。构建url的人并不意味着尖锐字符是页面的实际锚定符,它是title param值内的特殊字符;标题实际上是“foobar#9” 现在我需要创建一个重写规则。使用以下命令: RewriteCond %{query_string} ^title=foobar#9$ RewriteRule ^/foo.php$ http://example.com/test? [R=301,L] 这种情况从来都不匹配。使用以下命令 RewriteCond %{query_string}
RewriteCond %{query_string} ^title=foobar#9$
RewriteRule ^/foo.php$ http://example.com/test? [R=301,L]
这种情况从来都不匹配。使用以下命令
RewriteCond %{query_string} ^title=foobar%239$
RewriteRule ^/foo.php$ http://example.com/test? [R=301,L]
该条件仅在url实际编码时匹配()。我有没有办法让用户点击(非编码的)url链接并匹配条件(重写规则生效)?我不确定这是否可行。
#
通常只由浏览器解释
浏览器实际上不会将此字符发送到Web服务器(除非已编码),因此您的规则永远不会匹配
这是我在尝试时看到的日志行:
127.0.0.1---[2014年4月15日]“GET/?title=foobar HTTP/1.1“200 466”-”
请注意,请求中完全缺少#9