2011-08-25 76 views
1

的.htaccess

 
    RewriteEngine On 
    RewriteRule register index.php?mode=register 
    RewriteRule login index.php?mode=login 

的index.php

 
    <?php 
    if (isset ($_GET['mode']) && ($_GET['mode'] == 'register')) { 
     include('includes/register.php'); 
    } elseif (isset ($_GET['mode']) && ($_GET['mode'] == 'login')) { 
     include('includes/login.php'); 
    } 
    ?> 

這是我目前的方法(感謝@TROODON)。

有沒有更簡單的方法,也許使用鍵值數組來存儲index.php將調用的各種頁面的所有可能性?

感謝

回答

2

爲了您.htaccess你可以這樣做:

RewriteEngine ON 

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

但是,不要改變你的PHP代碼只include無論你是從$_GET['mode']越來越!這將允許用戶隨意包含。

你可以調整你的PHP代碼如下所示:

$pages = array("register" => "includes/register.php", 
       "login" => "includes/login.php"); 

if(isset($_GET['mode']) && $pages[$_GET['mode']]) 
    include $pages[$_GET['mode']]; 

PS:兩個RewriteCond的確認網址是不是現有的文件或文件夾(例如,如果你有那麼一個文件夾images site.com /圖片還是會去那個文件夾,而不是index.php?mode=images

+1

對不起,我在接受這個答案遲遲,我必須確保它是達到標準,當我實現了它到我的系統,它的工作原理就像一個魅力.. 。迄今爲止!謝謝。 – Mike

+0

沒有probs,很高興幫助:) – Kokos