mod_rewrite外部链接问题(wordpress)

时间:2012-11-07 01:37:12

标签: mod-rewrite redirect url-rewriting external

我有一个redirect.php和一个链接,它在WORDPRESS中不起作用。

我希望当我点击我网站上的“hello”链接时,它会转到redirect.php,用户会看到微调器5秒钟,用户会将我的网站退出到hello.com

看起来mod_rewrite有问题我无法解决

我真的很感激非常详细的答案。我很小便

这就是我所拥有的。

1.-我的主页上有一个外部链接:

<a href="http://redirect.php?link=hello.com">Hello</a>

2.-在redirect.php中,我有:

<html>
<head>
    ...
    <meta http-equiv="refresh" content="5;url=<?php echo $_GET['link'];?>" />
    ...
</head>
<body>
    <h1>You are leaving my site!</h1>
    <img src="/images/spinner.gif" alt="spinner" />
</body>
</html>

1 个答案:

答案 0 :(得分:0)

链接<a href="http://redirect.php?...不正确。这很可能是<a href="/redirect.php?...或服务器上的任何子目录。

您还应该在link参数中包含协议,或将其添加到元标记中。另外,请确保对元标记中的链接进行HTML编码,并对链接参数中的域名进行正确的URL编码。

因此,请将链接更改为:

<a href="/redirect.php?link=http%3A%2F%2Ftest.com">Hello</a>

如果您的网站根目录中有redirect.php文件。并将元标记更改为:

<meta http-equiv="refresh" content="5;url=<?php echo htmlentities($_GET['link'], ENT_QUOTES,);?>" />

您可能希望对link参数的有效性进行一些验证,并且您可能还想检查引荐来源网址($_SERVER('HTTP_REFERER'))以确保您只对来自您自己网站的链接执行重定向(即不要创建open redirect漏洞。)