2012-06-26 61 views
1

我想創建一個301從一個頁面到同一頁面,除了目標頁面在url中有一個參數。瀏覽器顯示一個錯誤(太多重定向),所以它似乎有一個無限循環。這是我的代碼:.htaccess - 301重定向如果沒有查詢字符串

RewriteEngine on 
Redirect 301 /index.php http://www.monsite.com/index.php?step=1 

感謝指點我爲:d

+0

請嘗試和接受一些較舊的問題的答案......你的接受度是20%,而從幫助您阻止他人。 – DeaconDesperado

回答

7

你需要條件化重定向並做它在PHP防止無限重定向循環。

的index.php:

if(!isset($_GET['step'])){ 
    header('Location:http://www.monsite.com/index.php?step=1'); 
} 

您有它配置將無限期地重定向,因爲沒有什麼話說到發動機的方式「不盡快URL變步設置重定向我。」

有一些方法可以在.htaccess文件中做到這一點,但由於這些類型的重定向通常是應用程序邏輯,因此在腳本中直接執行它似乎更有意義。

或者,對於純的.htaccess解決方案:

#if query string is empty 

RewriteCond %{QUERY_STRING} ^$ 

#match on/for root, or .index.php in request and send to query string version 

RewriteRule ^(/|index.php)?$ /index.php?step=1 [R=301,L] 
+0

嗨,我想只使用htaccess ...感謝您的幫助 – JojoLapin45

+0

@ JojoLapin45編輯 – DeaconDesperado

+0

非常感謝你,它的作品就像一個魅力:) – JojoLapin45

相關問題