2012-03-18 86 views
0

我試圖讓瀏覽器重定向,只要用戶在/index.php/index.php//index.php////中鍵入簡單的/即可。這是我到目前爲止php從/index.php重定向到/

if ($_SERVER['ORIG_PATH_INFO'] == '/index.php') { 
    header('HTTP/1.1 301 Moved Permanently'); 
    header('Location: http://'.$_SERVER['HTTP_HOST'].'/' 
} 

但是我得到一個無限循環重定向錯誤。我究竟做錯了什麼?有什麼辦法可以做到這一點?

編輯,似乎改變'ORIG_PATH_INFO''REQUEST_URI'做的伎倆/index.php我該怎麼添加到我的if照顧index.php/index.php//// ...?

+0

您重定向的index.php到/這意味着同樣的事情 – safarov 2012-03-18 12:50:01

+0

@safarov出現搜索index.php:是的,但它會在地址欄更好,並且出於航行原因我需要它。 – qwertymk 2012-03-18 12:52:12

+0

你也可以用.htaccess文件來做。如果你想我可以寫U帶htaccess的 – safarov 2012-03-18 12:56:15

回答

2

使用REQUEST_URI。當您使用ORIG_PATH_INFO時,您將永遠得到/index.php

+0

我買了'REQUIEST_URI'了同樣的問題這就是爲什麼我認爲'ORIG_PATH_INFO'可能工作 – qwertymk 2012-03-18 12:51:00

+0

所以也許使用'mod_rewrite'? – 2012-03-18 12:55:31

+0

好吧,它似乎現在工作,有沒有什麼辦法來檢查index.php /和index.php //// ...? – qwertymk 2012-03-18 12:55:42

1

基礎的條件上,而不是$_SERVER['REQUEST_URI']當URL實際上並不包含index.php它不會嘗試和重定向。

,並使用stristr無論它在url

http://us3.php.net/manual/en/function.stristr.php

+0

好吧,它似乎現在工作,有沒有什麼辦法來檢查'index.php /'和'index.php ////'...? – qwertymk 2012-03-18 12:55:24

+0

我想爲我推薦使用'stristr'檢測含有的index.php或者說http://us3.php.net/manual/en/function.stristr.php – dldnh 2012-03-18 12:57:25

+0

是的,但它可能任何變化的任何網址包含在查詢字符串 – qwertymk 2012-03-18 12:58:37

相關問題