2013-01-16 70 views
-5

我有下面的代碼:重新導向的基礎條件

<?php 
if($_SERVER['REQUEST_URI'] == 'http://example.com/knowthecode') 
{ 
    header("Location: http://example.org/knowthecode"); exit; 
} 

這是行不通的預期。你能幫我嗎 ?

+1

輸出'$ _SERVER ['REQUEST_URI']'的內容,看看裏面有什麼。 – Sven

+0

'var_dump($ _ SERVER ['REQUEST_URI']);' – zerkms

+2

什麼被感染? –

回答

1

$_SERVER['REQUEST_URI']的值不包含整個URL(如評論中所建議的那樣)。

儘管$_SERVER中還有其他元素可能最終會滿足您的需求,但您最好使用parse_url()這樣的函數,然後比較這些塊。

1

$_SERVER["REQUEST_URI"]不包括該網站的主機 - 像http://www.mysite.com/page.php?key=value$_SERVER["REQUEST_URI"]頁面將是`/page.php?key=value」

嘗試以主機上搜索看$_SERVER["HTTP_HOST"] 。還有

和一個好方法是添加:

echo "<pre>"; 
var_dump($_SERVER); 
echo "</pre>"; 
die(); 

這將幫助您瞭解服務器的var是和它們意味着什麼

0

看一看http://php.net/manual/en/reserved.variables.server.php

REQUEST_URI是(域)

例如http://www.domain.com/index.php的REQUEST_URI是的index.php發送到您的服務器的請求

你可以做的是這樣的:

if($_SERVER['REQUEST_URI'] == '/index.php') 
{ 
    header("Location: http://www.google.com"); 
    exit; 

} 
+0

我沒有像「knowthecode.php」這樣的頁面名稱,但用戶可能會通過使用url - 'http://example.com/ knowthecode」。你能告訴我如何在服務器端知道這一點? –