2011-01-04 4 views
0

PHP/Apache 스택 맨 위에있는 첫 번째 사이트에서 작업하고 있습니다.임의의 수의 "하위 디렉토리"가있는 URL prettification

+AAA Entry 
    -AAB Entry 
    -AABA Subentry 
    -AABB Subentry 
    -AAC Entry 
    -AACA Subentry 
     -AACAA Subentry 
     -AACAB Subentry 
    -AACB Subentry 
    -AAD Entry 

+BBB Entry 
    -BBC Entry 
    -BBCA Subentry 
    etc. 
+CCC Entry 
+DDD Entry 

내 목표는 다음과 같은 유효한 URL을하는 것입니다 :

내 사이트가이 같은 구조 논리적 인 메뉴가 있습니다

http://www.mydomain.com/aaa/aab/aaba 
http://www.mydomain.com/aaa/aac/aaca/aacaa 
http://www.mydomain.com/aaa/aac/aacb 
http://www.mydomain.com/aaa/aad 

http://www.mydomain.com/bbb 
http://www.mydomain.com/bbb/bbc 
http://www.mydomain.com/bbb/bbc/bbca 

http://www.mydomain.com/ccc 

내가 읽은 대한 mod_rewriteRewriteRuleRewriteCond하지만 유지 관리 측면에서 어떤 방법을 사용해야할지 확신 할 수 없습니다. 예를 들어 AACAA에 다른 레벨을 추가하기로 결정하면 어떻게됩니까? mod_rewrite을 반복해서 사용해야합니까?

모든 것을 index.php으로 리디렉션하고 REQUEST_URI을 수동으로 구문 분석하는 것이 더 적절합니까? 전문가가 어떻게 수행합니까?

그것은 PHP에서 라우팅을 컨트롤러 스크립트에 모든 URL을 전달하고, 할 훨씬 쉽게
+0

[PHP 프레임 워크] (http://www.phpframeworks.com/)를 사용하여 "전문가가 수행"합니다. 교육적 훈련 이외의 방법으로 자신을 굴려서는 안됩니다. – meagar

+0

네, 저는 PHP를 배우고 일반적으로 웹을 코딩하기 위해 제 자신의 CMS를 작성하려고합니다. 이것은 프로덕션 환경에 절대 존재하지 않습니다. :) – ypeels72

답변

1

:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule .* my_script.php [L] 

my_script.php을 통해 존재하지 않는 파일에 대한 모든 요청을 지시합니다. 거기에서 요청 URI를 검사하고 슬래시로 구분 된 세그먼트로 분해 한 다음 올바른 파일로 라우팅 할 수 있습니다.

+0

그건 내가 조금 생각한 후에 나에게 온 유일한 해결책이야. 이 답변을 표시하기 전에 더 많은 응답을 기다릴 것입니다. 감사! – ypeels72

+0

+1. '-d'와'-l'에 추가로'RewriteCond'가없는 이유가 있습니까? –

+0

@gore'-l'은 중복됩니다 ('-f'는 심볼릭 링크를 포함합니다). 그래서'-d'가 아닌 디렉토리 내용을 제공하고 싶지는 않습니다. – meagar

관련 문제