2015-10-18 50 views
1

我有一個頁面index.php,我想在用戶的特定操作後在URL的末尾附加一個參數。所以結果將是index.php?param=1將參數附加到現有的URL導致無限循環

使用下面的PHP代碼導致無限重定向循環。

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

使用下面的Javascript代碼導致無限刷新循環。

window.location = "?param=1"; 

如何追加該參數一次而不遇到使用PHP,Javascript或jQuery的任何循環?

+0

你從哪裏*重定向*?如果加載索引頁面重定向到索引頁面,那肯定會是一個無限的重定向循環。當然,如果您在執行重定向時已經*在索引頁上,那麼您不需要重定向。所以它不是很清楚你想要做什麼... – David

回答

2

對於PHP版本,請嘗試:

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

謝謝!那就是訣竅。 –

1

請嘗試添加主機名,然後嘗試。

示例 - 如果您使用本地主機。

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

除了使用Apache的mod_rewrite,如果附加參數已經被設置,你可以檢查,例如

<?php 
if (isset($_SERVER['QUERY_STRING'])) 
    header("Location: index.php?param=1"); 
?> 
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的或別的東西,查看他們的文檔如何使重定向。通常這很容易。