2014-11-08 31 views
-1

我需要重定向可能被調用到主頁面的所有子頁面(一些舊鏈接仍在谷歌上),並且頁面不再存在。重定向到主頁的函數php給出了一個無限循環

所以我在PHP中做了一個函數,我在我的index.php頂部調用它,但Firefox和Chrome檢測到一個無限循環。

我不知道它有什麼問題。

這裏是我的功能:

<?php 
    function homepage() { 
    if ($_SERVER['REQUEST_URI'] == '/index.php' || $_SERVER['REQUEST_URI'] == '/index.html' 
    || $_SERVER['REQUEST_URI'] == '/home.html' || $_SERVER['REQUEST_URI'] == '/default.html') { 
     header('location:http://www.website.com', true, 301); 
    } 
    } 
?> 
+0

你是怎麼調用這個函數的?就好像你在每次訪問頁面時調用這個函數一樣,chrome會將它檢測爲一個無限循環,因爲它總是遇到,也許並不總是重定向,但總是進入這個循環 – 2014-11-08 13:47:32

回答

1

什麼是http://www.website.com的頁面,不就是爲的index.php,所以你在做什麼將它與重定向,然後被髮送到http://www.website.com/index.php再次檢查,並把它發送到http://www.website.com/index.php,然後再次檢查,並把它發送到http://www.website.com/index.php,然後再次檢查,並把它發送到http://www.website.com/index.php,然後再次檢查,並把它發送到http://www.website.com/index.php,然後再次檢查,並把它發送到http://www.website.com/index.php

+0

add'if($ _ SERVER ['SERVER_NAME']!== 「www.website.com」){//重定向代碼的其餘部分} – Billy 2014-11-08 13:57:39

-1
<?php 
function homepage(){ 

     if($_SERVER['REQUEST_URI']!='/index.php' and $_SERVER['REQUEST_URI']!='/index.html' 
       and $_SERVER['REQUEST_URI']!='/home.html' and $_SERVER['REQUEST_URI']!='/default.html'){ 
      header('location:http://www.website.com', true, 301); 
     } 
    } 
?> 

現在,這應該是正確的:)

+0

這正是我不想做的事 – 2014-11-08 13:53:26

+0

你函數中的功能是將你指定的頁面發送到第一頁。如果這是你想要的,那麼做它的正確。不要把循環變成簡單的。然而。我的更改使得所有頁面都可能與第一頁中可能存在的索引頁分開。你說過「我需要將所有可能被調用的子頁面重定向到主頁面」。那可以包含比舊版第一頁更多的頁面?一般來說,我會建議在htaccess或類似的重定向。 – 2014-11-08 14:08:50