2012-04-26 5 views
0

에서 나는 다음과 같은 htaccess로 코드를 가지고 : 약자로 나는이 사이트의 루트에서에 필요하지만, 관리자 페이지 (/cms/)에 액세스로, 작동mod_rewrite를하지만 하위 디렉토리

Options +FollowSymLinks 
RewriteEngine On 
RewriteBase /

#RewriteCond %{REQUEST_URI} !(/cms/|/js/|/mobile/)* [NC] 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ /page.php [L] 

을, PhpConsole을 통해 여전히 page.php를 치고 있다고 말할 수 있습니다. 관리자가 쿼리 문자열로 제어되기 때문에 생각합니다 :

첫 번째 조건의 주석을 제거하면이 문제는 더 이상 발생하지 않지만 프런트 엔드는 404 존재하지 않고 page.php로 리디렉션하지 않습니다.

내 코드에 어떤 문제가 있습니까?

답변

1

변경이와 코드 :

page.php 여전히 CMS의 디렉토리에 박히는 것을 제외하고이 잘 작동
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule (?!^(cms|js|mobile)(/.*|)$)^.*$ page.php [L,NC] 
+0

... – AVProgrammer

+0

당신이'의 URI를 의미합니까/CMS/style.css' 여전히'page.php'로 갈 예정입니까? – anubhava

+0

사실, 괜찮습니다./cms /? view = pages로 이동하면 여전히 page.php를 치고 있습니다. 나는/cms /를 발견하면 die()에 page.php에 코드를 넣을 것이지만, 그렇게하지 않아도된다. – AVProgrammer