http://www.example.com/http://www.test.com
我尝试过很多不同的方法,使用.htaccess但没有运气。我需要将第二个url作为参数。是否可以将其重定向到index.php并将其作为$_SERVER["REQUEST_URI"]
或其他方法获取?感谢
UPD:看起来无法获取整个网址,无法识别问号。理想的例子:
127.0.0.1/http://www.test.com/script.php?a=hello&b=world#blabla;par2?%par3
我需要输入我的index.php精确字符串
www.test.com/script.php?a=hello&b=world#blabla;par2?%par3
答案 0 :(得分:3)
问题:
这是在 Windows 上运行的 Apache 的问题。 Windows上的Apache不允许您在请求URI 中添加冒号(:
)。这基本上是为了避免像http://www.mysite.com/C:/SomeFile.exe这样的网址,但实际上很烦人。
如果您同时使用mod_rewrite
,则会跳过它。
您和某些应用程序(如维基百科)在网址中使用冒号:
。那么在Windows上用Apache做什么呢?
解决方案:
在撰写此答案时,此错误仍然存在,并且没有绝对的解决方案,但是有一个技巧:
您可以将网址更改为以下内容: http://www.mysite.com/url/http://www.test.com
在此示例中, http://www.mysite.com/
是脚本路径,/url/http://www.test.com
是请求URI 。
如果冒号(/
)之前存在斜杠(:
),问题就会消失。
答案 1 :(得分:2)
答案 2 :(得分:0)
您可以获取URI,但只能没有片段,因为它不会传输到服务器。试试这个规则:
RewriteRule ^http:/ index.php [L]
然后,/
提供了请求的URI路径加查询(因此第三个#
到第一个$_SERVER['REQUEST_URI']
或URI结尾的部分)。