Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在PHP GET中传递URL_Php_Apache_.htaccess_Get - Fatal编程技术网

无法在PHP GET中传递URL

无法在PHP GET中传递URL,php,apache,.htaccess,get,Php,Apache,.htaccess,Get,当转到http://foo.com/bar.php?url=http://foobar.com/我收到了一个403禁止的错误。 如果我将URL编码为:http://foo.com/bar.php?url=http%3A%2F%2Ffoobar.com%2F 但是如果我对它编码两次,它就会工作:http://foo.com/bar.phpurl=http%253A%252F%252Ffoobar.com%252F 我知道我能做到,但这真的很烦人 我已尝试将以下行添加到.htaccess:SecFi

当转到
http://foo.com/bar.php?url=http://foobar.com/
我收到了一个
403禁止的
错误。 如果我将URL编码为:
http://foo.com/bar.php?url=http%3A%2F%2Ffoobar.com%2F

但是如果我对它编码两次,它就会工作:
http://foo.com/bar.phpurl=http%253A%252F%252Ffoobar.com%252F

我知道我能做到,但这真的很烦人

我已尝试将以下行添加到.htaccess:
SecFilterEngine Off

无论是
bar.php
存在还是为空,它仍然会显示403 Forbbidden

但是,我得到了一个错误:
无效的命令'SecFilterEngine',可能拼写错误或由服务器配置中未包含的模块定义

你可以对它进行两次编码和两次解码

<?php 
echo rawurldecode(rawurldecode("http://foo.com/bar.php?url=http%253A%252F%252Ffoobar.com%252F"));
如果出现错误:
命令“SecFilterEngine”无效,可能拼写错误或由未包含的模块定义

这是因为您没有在httpd.conf中包含“:LoadModule security\u module modules/mod\u security.so”

另一个可能的原因是您正在使用mod_security2,而SecFilterEngine已经过时,您应该将其迁移到SecRuleEngine,迁移文档中对此进行了解释


您是否有指向httpd.conf或.htaccess的链接?你确定你的mod_security.c加载了正确的参数吗?你的具体问题是什么?你想做什么?请在你的问题中添加
bar.php
的代码。我没有该网站的root访问权限,所以我甚至不知道我是否有mod_security@Tyilo:看看我的答案…@hakre:bar.php的代码一点都不重要。在问题中,OP指定bar.php是否存在并不重要。