2012-02-14 65 views
-2

我使用下面的代碼基本上去我的網頁。它是如何工作的,我把index.php?req=pagename,它會檢查我的受保護的文件夾,看看文件是否存在,如果它是那麼去那裏。我需要一個國防部重寫,這樣它不顯示所有index.php?req=pagename,只是顯示/pagenamehtacess url重寫?在一個PHP獲得系統

require_once("protected/header.php"); 

    if (isset($_GET['req'])) { 
     $req = $_GET['req']; 
    } else { 
     $req = "overall"; 
    } 

    require_once("protected/$req.php"); 
    require_once("protected/footer.php"); 
+3

谷歌是您的朋友:http://www.workingwith.me.uk/articles/scripting/mod_rewrite – Erik 2012-02-14 22:28:44

回答

-2

你將不得不使用POST而不是GET如果你想要一個乾淨的動態URL。你的問題雖然沒有多大意義。

+0

他想將'/ pagename'重寫爲'index.php?req = pagename'。 – 2012-02-14 22:36:02

3

您的代碼允許任何 php文件(禁止safemode/open_basedir限制)被解析和執行。您需要轉義輸入第一個,即使它是像刪除斜槓,tildes和句點一樣簡單。

至於重寫去,只需創建一個.htaccess文件在你的文檔根線沿線的:

<IfModule mod_rewrite.c> 
RewriteEngine On 
#RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ /index.php?req=$1 [QSA,L] 
</IfModule> 
+0

即時通訊我把它放在htacess中,它什麼都不做,所有的頁面仍然像/index.php?req=pagename像我說我想要的是/ pagename – user1210121 2012-02-14 22:48:19

+0

咦?你輸入'yourdomain/pagename',它顯示404錯誤? – webbiedave 2012-02-14 23:05:50

+0

確保在apache中啓用重寫模塊。正確放置'.htaccess'。做這兩件事(並確保'/ pagename'當然不存在)將產生正確的結果。請檢查標記這個答案,當你能:) – webbiedave 2012-02-14 23:17:21