【发布时间】:2015-09-02 02:18:44
【问题描述】:
我目前在我的网站周围的网址上收到大约 400 个错误请求错误,其中包含 % 符号。这些网址不是在网站上生成的,而是被谷歌以某种方式获取的。
一个示例网址是
http://example.com/file/download/1/%s.html
我想知道如何重写这些网址以删除 % 符号。
【问题讨论】:
标签: .htaccess mod-rewrite
我目前在我的网站周围的网址上收到大约 400 个错误请求错误,其中包含 % 符号。这些网址不是在网站上生成的,而是被谷歌以某种方式获取的。
一个示例网址是
http://example.com/file/download/1/%s.html
我想知道如何重写这些网址以删除 % 符号。
【问题讨论】:
标签: .htaccess mod-rewrite
不要以为你能对此做任何事情。我假设因为这会生成一个 400,所以 % 未编码,如,请求字面意思是:
/file/download/1/%s.html
而不是
/file/download/1/%25s.html
因为%是一个保留字符,如果apache在请求中看到%s,它就假定%后面的2个字符是一个十六进制数字并尝试解码它,而s.不是'无效,因此它返回 400 错误请求。
此请求甚至从未移交给 URL 处理管道,因此 mod_rewrite 或您放入 htaccess 文件中的任何其他内容都不会看到它。
【讨论】: