当我将URL作为参数传递时,Apache失败

时间:2010-02-04 15:20:58

标签: php apache .htaccess openid

嘿大家,我真的很困惑这个问题。我试着描述一下:

问题是: http://mydomain.com/somedir/somephp.php?arg1=value&arg2=http://otherdomain.com&arg3=http://othertoo.com/somepath/something ......完全失败了。有和没有url编码。

我的网站在mydomain.com/everything之后读取所有内容,但存在的文件和目录除外。我正在使用mod_rewrite:

Options -Indexes 

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ handler.php

上面的查询示例登陆handler.php。如果我注释掉RewriteRule,则会出现apache错误:

Forbidden

You don't have permission to access /somedir/somephp.php on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

很多测试等,我已经发现url参数中的http://或://字符串存在问题。 但它的url编码:S

这个东西应该是一个openId身份验证系统,它在回发时失败了,我确定url参数中的url会出现这个错误。

我以前从未遇到过这个问题,但是,我做了很多相同的事情。 网址编码必须有效。

请帮帮我! 感谢名单!

2 个答案:

答案 0 :(得分:2)

我遇到了完全相同的问题。 here

您需要与托管服务提供商联系。有一些规则与他们的.htaccess规则相冲突。因此,请求他们根据此类规则将您的网站列入白名单。

在向您的网站托管服务提供商报告问题时,请不要忘记提供问题的网址。

我非常相信,一旦您的网站被添加到服务提供商安全规则的白名单中,您的问题就会得到解决。

当我向网站托管服务提供商报告此问题时,我的问题已解决。

答案 1 :(得分:0)

您可以尝试使用base64编码:

http://www.webtoolkit.info/javascript-base64.html

然后在应用程序中对其进行解码。