是否可以处理此类URL

时间:2010-05-27 17:11:02

标签: .htaccess

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

3 个答案:

答案 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结尾的部分)。