2010-06-28 4 views
0

이 파일은 실제로는 간단하지만 내 지식은이 영역에서 실제로 좋지는 않겠지 만 제대로 이해할 수없는 것 같습니다.Mod * .html 파일 (CodeIgniter)을 다시 작성하는 Mod Rewrite

/cms (renamed from system) 
cms.php (renamed from index.php, added to DirectoryIndex in .htaccess) 
.htaccess 
index.html 
page1.html 
/css 
/js 

나는 또한 CI 위키에서 htaccess로 있습니다

나는 다음과 같은 파일 구조를 가지고있다. 조정이 필요하다고 생각되는 부분은 다음과 같습니다.

#Checks to see if the user is attempting to access a valid file, 
#such as an image or css document, if this isn't true it sends the 
#request to cms.php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ cms.php?/$1 [L] 

나는 이미 존재하는 대부분의 파일에 액세스 할 수 있기를 원합니다. 및 .js, .css, .png, .swf 등 모든 .htm 또는 .html은 cms.php에 의해 처리됩니다.

예를 들어 사용자가 http://localhost/index.html을 요청하면 index.html이 cms.php로 전달되거나 http://localhost/dir/page.html이 요청되면 dir/page.html이 전달됩니다.

+0

호기심에서 벗어난 것은 무엇을 가지고 올바르게 작동하지 않았습니까? –

+0

글쎄,하지만 출력 전에 그들을 처리하는 html 파일을 잡으려고 노력했다. 예를 들어, 사용자 요청 index.html, "index.html"은 파일을로드하는 codeigniter 응용 프로그램에 전달되고, 내용을 변경 한 다음 내용을 에코합니다. 이 방법을 사용하면 간단하게 유지할 수 있습니다. 설계자는 3 개의 파일 (/ cms, cms.php 및 .htaccess)을 해당 코드에 덤프하면됩니다. – Josh

+1

아, 이제 이해합니다. (나는이 질문에 대한 원래의 대답에 문제가 있다는 것을 알았지 만, 당신이 원했던 것을 확신 할 때까지 답변을 게시하고 싶지 않았고, 생각한 것처럼 보였으므로 듣고있어 기뻤다.) –

답변

0
튜토리얼 발견

, 그리고 해낸 다음

RewriteRule ^(.*\.html)$ cms.php?/$1 [NC] 

그래서 아무것도 .html로 끝나는 것은/index.html을 cms.php 같은 URL의 결과로, cms.php에 전달됩니다 요청한 cms.php는 처리하고 출력 할 수 있습니다.

0
<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteCond $1 !^(*\.js|*\.png|*\.css|*\.swf|folder1|folder2) 
RewriteRule ^(.*)$ index.php/$1 
RewriteRule ^.\.htm cms\.php 
RewriteRule ^.\.html cms\.php 
</IfModule> 

당신은 당신이 RewriteCond 라인에 다시 지시하지 않는 다른 확장 및/또는 폴더를 추가 할 수 있습니다.

+0

Ah , 알았어. 그것을 되돌릴 수있는 방법이 있나요, 그래서 어떤 파일을 재 작성해야하는지 (.htm, .html)? – Josh

+0

예. 추가 RewriteRule 행을 파일에 추가 할 수 있습니다. 나는'.htm'과'.html' 파일을'cms.php'로 리다이렉트 할 추가적인 재 작성 규칙의 2 가지 예를 들어 답을 편집했습니다. – stormdrain

+0

흠, 제대로 작동하지 못했습니다. 그러나, 나는 그것을 분류했습니다 - 그것에 대한 튜토리얼을 발견하고 RewriteRule^(. * \. html) $ cms.php?/$ 1 [NC]이 일을하는 것처럼 보입니다. 어쨌든 고마워! – Josh