2013-04-12 99 views
0

其實我已經嘗試過在這裏所說的教程:http://net.tutsplus.com/tutorials/other/using-htaccess-files-for-pretty-urlsmod_rewrite的PHP問題

我曾嘗試使用本教程的PHP版本。但它似乎並不奏效。其實這對我來說看起來有點不合邏輯。

這是我需要的地方.htaccess文件的代碼:

Options +FollowSymLinks 
RewriteEngine On 

RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 

RewriteRule ^.*$ ./index.php 

正如我已經測試這實際上重定向一切index.php文件。因此,我已插入此代碼,以我的index.php文件:

$request = $_SERVER['REQUEST_URI']; 

$params  = split("/", $request); 


$safe_pages = array("login"); 

if(in_array($params[0], $safe_pages)) { 
echo 'ok'; //insert a file here 
} else { 
echo 'not ok'; //header to 403.php 

}

此代碼是相當starightforward。如果URI是/ login,它應該回顯:「ok」(在那裏插入文件)。

但是,無論何時我輸入:mywebsite.com/login它只是總是給我index.php,消息:「不好」,所以應該是錯誤的PHP代碼我猜。

+1

如果您有一個理解的問題,請聯繫該教程的作者。您也可以在該教程的評論中保留與該教程相關的討論。 –

+0

使用'print_r($ params);'查看代碼出錯的地方;大概'[0]'。 – mario

+0

另外請解決/回答你先前的問題,似乎是同一主題首先:[Mod_rewrite - 創建乾淨的URL](http://stackoverflow.com/q/15952942/2261774)。 –

回答

0

您正在上的.htaccess

RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 
+1

如果獲取請求的頁面的方法是通過'REQUEST_URI',你不需要將其重定向到一個命名參數 - 雖然有人建議,但並不是必須的。 ^^ – Jon

+0

它仍然無法正常工作。 –

+1

@Jon好吧...很高興知道..謝謝:) – jycr753

0

這應當詢問服務網址,如「網頁/項目」與像「網頁/項目」 網址

<?php 
$request = $_SERVER['QUERY_STRING']; 

$params  = explode("/", $request); 


$safe_pages = array("login"); 

if(in_array($params[0], $safe_pages)) { 
    echo 'ok'; //insert a file here 
} else { 
    echo 'not ok'; //header to 403.php 
} 
?> 

這不工作缺少一個多方法這應該工作:

<?php 
$request = $_SERVER['REQUEST_URI']; 

$params  = explode("/", $request); 


$safe_pages = array("login"); 

$last_item = count($params)-1; 

if(in_array($params[$last_item], $safe_pages)) { 
    echo 'ok'; //insert a file here 
} else { 
    echo 'not ok'; //header to 403.php 
} 

您正在測試錯誤的項目。您應該檢查數組末尾的字符串'login'。功能拆分折舊,使用explode()

+0

爲什麼不做'$ last_item = end($ params);'然後'in_array($ last_item,$ safe_pages)'?但是,如果您想擴展並允許'myPage/how-to'等,那麼整個方法將不再有效。 ^^ – Jon