2010-01-28 3 views
0

내 htaccess로 파일이 있습니다 mod_rewrite를 빈 REQUEST_FILENAME

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule !\.(gif|jpg|png|css|js|ico|flv|php|txt)$ index.php 

지금 내가 어떤 REQUEST_FILENAME이 발견되지 않는 경우 index.html을에 전달합니다 다른 규칙을 추가해야합니다.

그래서 www.mysite.com은 index.html을 앞으로 것이고 www.mysite.com/file.html은 index.php를 기대한다.

답변

1

나는 normaly이 재 작성 규칙을 사용 : 그것은의 index.php에 존재 그나마 모든 URL을 다시 작성

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

.

+0

그래서 요청 URL에 파일이 없으면 index.html로 전달하고 index.php로 전달하지 않으시겠습니까? – dfilkovi

+0

왜 이것을 다시 쓰고 싶습니까? 당신은 당신의 문서 루트에 index.html과 index.php를 가질 수 있습니다.DirectoryIndex index.html을 설정하면 request_filename을 갖지 않으면 index.html이 호출됩니다. – Rufinus

+0

index.php를 내 앞에 컨트롤러, 그리고 index.html을 그렇게 모든 요청은 index.php를 전달하는 웹 사이트에 대한 항목 플래시 애니메이션을 보유하고 있으며 지금은 정확히 – dfilkovi

1

그냥 끝나는 URL 경로에 제한없이 다른 규칙을 추가

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule !\.(gif|jpg|png|css|js|ico|flv|php|txt)$ index.php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.html 

을하지만 아마 기본 오류로 처리 사용하는 것이 좋을 것이다 :

ErrorDocument 404 /index.html 

그렇지 않으면 서버가 '수상 존재하지 않는 파일 요청시 404로 응답합니다.

+0

내가 추가 할 경우 작동하지 않습니다 : ! 한다 RewriteCond % {REQUEST_FILENAME}는이 index.php를 때마다로드 끝에 한다 RewriteRule^index.html을 을 -f, 그리고 내가 전에 넣어 경우, 항상로드 index.html을 – dfilkovi

+0

@dfilkovi :의 목적은 무엇인가 첫 번째 규칙 어쨌든? – Gumbo

+0

index.php는 프론트 컨트롤러이며 index.html은 웹 사이트에 대한 항목 플래시 애니메이션을 보유하고있어 모든 요청이 index.php로 전달되므로 index.html로 전달할 request_filename이없는 단일 요청이 필요합니다 – dfilkovi