2009-05-24 56 views
0

我有一個網站,利用GET變量來確定要顯示的內容。如何重寫其中包含GET變量的URL?

@session_start(); 
@extract($_GET); 
@extract($_POST); 
. 
. 
. 
if (!$menu) { include("home.php"); } 
if ($menu=='buy') { include("buy.php"); } 
if ($menu=='invalidbuy') { include("invalidbuy.php"); } 
if ($menu=='buydone') { include("buydone.php"); } 
. 
. 
. 

我想我必須要利用.htaccess文件,以從「/index.php?menu=faq」重命名我的網址爲「/ FAQ」。我怎樣才能做到這一點??

+3

以這種方式使用提取物相當短視。如果某人稍後添加了一個與變量相符的參數,該怎麼辦? 即一些代碼,說如果($ logged_in){/ *登錄的東西* /} 用戶轉到script.php?logged_in = 1 – 2009-05-24 20:59:54

回答

1

可以使用以下rule/foobar內部的路徑的任何請求重寫/index.php?menu=foobar

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^[^/]+$ index.php?menu=$1 [L] 

附加RewriteCond directive確保只有不存在的文件(!-f)被重寫。