2013-05-08 4 views
0

.htaccess mod_rewrite에 문제가 있습니다. 나는 간단한 사용자 정의 CMS를 만들었고 이것을 내 도메인의 하위 디렉토리에 넣었습니다. http://www.example.com/cmsHtacces mod_rewrite 하위 디렉토리

I했습니다있어 다음과 같은 상황 :

CMS/index.php를 페이지 = 모듈/페이지/index.php에 CMS/모듈/페이지/인덱스로 변환

및 CMS/index.php에? 페이지 = 모듈/페이지/edit.php? ID = 1 CMS/모듈/페이지/편집/1

I로 변환 그것은 하위 도메인 작업 도착했습니다 '하지만 난 example.com/cms를 사용할 때 그것은 ... 내가이 htaccess로를 만든 적이 있지만 내가 그것을 작동 가져올 수 없습니다 아무것도에게

하지 않습니다

RewriteEngine On 
Options +FollowSymlinks 
RewriteBase/


RewriteCond %{REQUEST_FILENAME} -f [NC,OR] 
RewriteCond %{REQUEST_FILENAME} -d [NC] 



RewriteRule ^(.*?)$ $1 [L] 

RewriteRule ^/cms/([^/]*)/$ cms/index.php?page=$1 [L,QSA] 
RewriteRule ^/cms/([^/]*)$ /cms/index.php?page=$1 [L,QSA] 
RewriteRule ^/cms/pages/([^/]*)/$ /cms/index.php?page=pages/$1 [L,QSA] 
RewriteRule ^/cms/pages/([^/]*)$ /cms/index.php?page=pages/$1 [L,QSA] 
RewriteRule ^/cms/modules/([^/]*)/([^/]*)/$ /cms/index.php?page=modules/$1/$2 [L,QSA] 
RewriteRule ^/cms/modules/([^/]*)/([^/]*)$ /cms/index.php?page=modules/$1/$2 [L,QSA] 
RewriteRule ^/cms/modules/([^/]*)/([^/]*)/([^/]*)$ /cms/index.php?page=modules/$1/$2&id=$3 [L,QSA] 
+0

인가? 그것은 무엇을해야 하는가? URL을 지정하면 원하는 출력은 무엇입니까? – icabod

+0

나는 게시물을 편집했습니다. 지금은 분명 해요. –

답변

0

htaccess 파일에있는 경우 URI 앞에 접두사가 제거 된 경우 (선행 슬래시) 해당 패턴이 일치하지 않습니다. 어느 패턴에서 슬래시를 제거하거나 옵션 (와 ?)합니다

RewriteRule ^/?cms/([^/]*)/$ cms/index.php?page=$1 [L,QSA] 
RewriteRule ^/?cms/([^/]*)$ /cms/index.php?page=$1 [L,QSA] 
RewriteRule ^/?cms/pages/([^/]*)/$ /cms/index.php?page=pages/$1 [L,QSA] 
RewriteRule ^/?cms/pages/([^/]*)$ /cms/index.php?page=pages/$1 [L,QSA] 
RewriteRule ^/?cms/modules/([^/]*)/([^/]*)/$ /cms/index.php?page=modules/$1/$2 [L,QSA] 
RewriteRule ^/?cms/modules/([^/]*)/([^/]*)$ /cms/index.php?page=modules/$1/$2 [L,QSA] 
RewriteRule ^/?cms/modules/([^/]*)/([^/]*)/([^/]*)$ /cms/index.php?page=modules/$1/$2&id=$3 [L,QSA] 

또한, 귀하의 첫 번째 규칙은 단지 단순화 할 수 있습니다 : 그것은 작동하지 않는 어떤 방법으로

RewriteCond %{REQUEST_FILENAME} -f [NC,OR] 
RewriteCond %{REQUEST_FILENAME} -d [NC] 
RewriteRule^- [L] 
+0

젠장, 그 해결책이 너무 쉽다는 것을 몰랐습니다! 귀하의 답변 주셔서 감사합니다! –