使用htaccess中的Rewrite重定向带%符号的URL

时间:2013-12-11 23:40:59

标签: .htaccess redirect rewrite

我的网站的入站链接在.html扩展名后面有%00。

示例:/directory/example.html%00

我想使用htaccess将此网址重定向到

/directory/example.html

由于%符号,我遇到此重定向问题。

在htaccess中,由于%符号,这不起作用。

RewriteRule ^directory/example\.html%00$ /directory/example\.html [R=301,L]

我已尝试用\首先转义%符号。

我在网上搜索了这个,但仍在努力。也许必须首先实施重写条件?由于%00是一个特殊字符(零十六进制代码),apache没有机会重写它?

1 个答案:

答案 0 :(得分:1)

您可以从this questionRFC 3986看到“%”字符在网址中无效,除非它出现在网址的查询字符串中(在“?”分隔符之后)。您的RewriteRule是正确的,但是由于URL无效,请求永远不会到达您的站点。如果“%00”实际上不是文字字符串而是[NUL]字符(因为在URL中也是无效的),也是如此。