我有一个页面index.php
,我希望在用户执行某项操作时将参数附加到URL的末尾。结果将是index.php?param=1
使用以下PHP代码导致无限重定向循环。
<?php
header("Location: index.php?param=1");
?>
使用以下Javascript代码导致无限刷新循环。
window.location = "?param=1";
如何在不遇到任何使用PHP,Javascript或jQuery的循环的情况下,只将该参数附加一次?
答案 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或其他东西,请查看他们的文档如何进行重定向。通常这很容易。