将参数附加到现有URL会导致无限循环

时间:2015-10-18 13:13:08

标签: javascript php jquery

我有一个页面index.php,我希望在用户执行某项操作时将参数附加到URL的末尾。结果将是index.php?param=1

使用以下PHP代码导致无限重定向循环。

<?php 
header("Location: index.php?param=1");
?>

使用以下Javascript代码导致无限刷新循环。

window.location = "?param=1";

如何在不遇到任何使用PHP,Javascript或jQuery的循环的情况下,只将该参数附加一次?

4 个答案:

答案 0 :(得分:2)

对于PHP版本,请尝试:

<?php
    if( !isset( $_GET['param'] ) ){
        header('location: index.php?param=1' );
    }
?>

答案 1 :(得分:1)

请尝试添加主机名,然后尝试。

示例 - 如果您使用的是localhost。

<?php 
header("Location: http://localhost/index.php?param=1");
?>

答案 2 :(得分:1)

除了使用Apache的mod_rewrite之外,您还可以检查附加参数是否已设置,例如

<?php 
if (isset($_SERVER['QUERY_STRING']))
    header("Location: index.php?param=1");
?>

答案 3 :(得分:1)

最好使用.htaccess文件来设置重定向,因为有单独存储逻辑和服务器配置的良好做法。

以下是.htaccess代码:

Redirect /path/to/index.php http://yourdomain.com/path/to/index.php?param=1

或者如果您需要永久重定向使用

Redirect 301 /path/to/index.php http://yourdomain.com/path/to/index.php?param=1

如果你不使用Apache而是使用Nginx或其他东西,请查看他们的文档如何进行重定向。通常这很容易。