这是我一生中遇到的最奇怪的问题,甚至无法谷歌它。它发生在一个用PHP编写的Apache支持的网站上,它使用mod_rewrite(但这不是问题,我试图删除。htaccess文件,问题仍然存在)。
如果我有一个查询字符串看起来完全或类似于:=/id
,我得到一个501响应:
方法未实现
GET to/not supported.
另外,在尝试…时遇到404 Not Found错误使用ErrorDocument来处理请求。
我从来没有写过这样的错误页面,从来没有发送过501响应,一点也不知道这个东西是从哪里来的。最初,我有一个很长的URL,给出了类似的错误,但我将其简化为上面的一小段代码。如果我删除或改变任何字符,错误就会消失。
如果有帮助:我的网站是commentards.net,原始URL是一个openid登录请求,看起来像这样:
http://commentards.net/q/user/auth?openid_identifier=https://www.google.com/accounts/o8/id
查询字符串的来源:
? openid_identifier = https://www.google.com/accounts/o8/Fid
我问了技术支持团队,他们说是mod_security,并在我的网站上禁用了它。现在它工作得很好。我应该从这个开始。无论如何,谢谢你的帮助。
Urlencode您的查询字符串参数
https://www.google.com/accounts/o8/id就变成了https % 3 a % 2 f % 2 fwww.google.com % 2 faccounts % 2 fo8 % 2 ffid
http://commentards.net/q/user/auth?openid_identifier=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2FFid工作正常,所以HerrSerker已经回答了你的问题。