2011-08-25 1 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 덕분에) PHP $ _GET에게 여러 페이지를 다시 작성 htaccess로.

더 쉬운 방법이 있을까요? 아마도 key-value 배열을 사용하여 index.php에서 호출 할 다양한 페이지의 모든 가능성을 저장할 수 있을까요?

주셔서 감사합니다 .htaccess이 작업을 수행 할 수 있습니다 들어

답변

2

는 :

RewriteEngine ON 

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

그러나, 단지 include 당신이 $_GET['mode']에서 점점 위해 무엇이든 PHP 코드를 변경하지 마십시오! 이렇게하면 사용자가 의지를 포함 할 수 있습니다.

당신은 너무처럼 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이있는 경우 URL이 site.com 기존 파일 또는 폴더 (예 있지 않은지 확인/images는 여전히 index.php?mode=images 대신 해당 폴더로 이동합니다.

+1

죄송합니다.이 답변을 수락하는 데 오랜 시간을 드려 죄송합니다. 시스템에 구현할 때 스크래치가 발생했는지 확인해야합니다. 지금까지! 고마워요. – Mike

+0

아무런 도움이되지 않아서 기쁩니다. :) – Kokos