2013-09-05 2 views
0

를 조회, 나는 사용자의 세 가지 유형을했습니다,의는 A, B라고하자 C로 그들에게 접근은 대부분 다른,하지만 여전히 몇 가지 중복되어 웹 페이지. 그리고 다음과 같이 디렉토리를 만들었습니다. 처럼.PHP 가상 디렉터리 내 웹 사이트에서

Root 
    A 
     A1 
     A2 
     A3 
     K1 
     K2 
    B 
     B1 
     B2 
     K1 
    C 
     C1 
     C2 
     C3 
     K1 
     K2 

그래서 여기 K1과 K2가 아니라 유사한 내용하지만 일반적인 이름을 가진 파일. 사용자 로그인 유형 일 경우 domain.com/A/A1/domain.com/A/K2/ 등을 검색 할 수 있습니다. B 유형의 사용자는 domain.com/B/B1 등으로 찾아 볼 수 있습니다.

내가 원하는 무엇, 그 사용자 로그인의 유형은, 그 사이에 AB 등을 사용하지 않고, 등등 domain.com/A1/domain.com/K1 등을 통해 탐색 할 때. 이제 파일의 명확성을 방지하기 위해 모든 파일을 함께 섞을 수 없으므로 위에서 설명한 것과 동일한 디렉토리 구성으로 유지해야합니다. 그렇게하는 방법? 무엇을해야합니까?

mod_rewrite를 가상 디렉터리를 생성하는 데 도움이 있지만, 우리가 보여줄 방법을 선택할 수 PHP 세션 변수 N, 데이타베이스 쿼리를해야하고, 무엇을 모든 것은 사용자에게 접근 유지하기로이 경우에 도움이 안된다.

나는 이렇게 질문을 이해하면서 당신이 얻을 모든 문제에 대해 문의하시기 바랍니다 훨씬 명확하지 않을 수 있습니다. 감사합니다. .

+0

"사용자 유형"은 어디에 저장 되나요? 세션 쿠키에 있습니까? 활성 세션의 데이터베이스에서? 쿼리 문자열 매개 변수? –

+0

세션 변수는 사용자의 UID를 저장하며 UID에 따라 그룹 테이블에서 쿼리하여 사용자 유형을 알 수 있습니다. – kushpf

답변

1

당신은이 일을해야한다 : 사용자 유형을 얻을, 요청 된 URI를 얻을. 그런 다음 어떤 디렉토리를 제공해야하는지 알게됩니다. htaccess와 mod_rewrite는 데이터베이스에 대한 액세스 권한이 없기 때문에 두 번째 작업을 수행하는 데 충분하지 않습니다.

은 당신이 할 수있는 것은 사용 PHP는 컨트롤러의 일종으로 경로 전부입니다 :

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /user_type.php?request=$1 [L] 

user_type.php 다음 request$_GET 변수에서 제일 먼저 알 것이고, 그 다음에 가져 오는에 의해 두 번째 일을 할 수 사용자 유형을 기반으로 요청을 리턴합니다. 예 :

$file_to_serve = $_GET['request']; 

if($user_type == 'A') 
    $file_to_serve = 'A/' . $file_to_serve; 
+0

감사. .htaccess가 PHP 스크립트를 가져올 수 있다는 것을 몰랐습니다. .htaccess로 다시 보내는 방법? 'return $ file_to_serve;'? – kushpf

+0

나는 내일 혼자 체크 아웃 할 것이다. 여기에 심야. – kushpf

+0

@k_programmer는 htaccess로 다시 보낼 필요가 없습니다. PHP 스크립트는'$ file_to_serve'의 내용을 출력하고 브라우저는 그것을 렌더링합니다. –

관련 문제