2013-02-10 1 views
0

이 내 htaccess로 파일입니다CodeIgniter에서 .htaccess 파일과 routes.php 파일의 관계는 무엇입니까?

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 

그리고 내 routes.php 파일 : 그들은 기본적으로 같은 일을하지 마십시오

$route['default_controller'] = 'pages/view'; 
$route['news/(:any)'] = 'news/view/$1'; 
$route['news'] = 'news'; 
$route['(:any)'] = 'pages/view/$1'; 

? 어떤 것을 사용하는 것이 맞습니까?

* 편집 : 내 질문은이 예제에만 해당되지 않습니다. 그것은 더 좋아, 어떤 것에 좋은가? 둘 다 똑같은 것 같아? 아니면 내가 틀렸어? *

답변

2

htaccess로 파일, URL에서 index.php를을 제거 URI 세그먼트 컨트롤러, 행동의 측면에서 가리키는하고, 즉

을 매개하는 routes.php 파일을 제어하는 ​​반면,

htaccess로 요청 된 URL에서 index.php를 제거하기 위해 아파치 서버에 지시하고, routes.php 그냥 .htaccess 파일이 URI에 대한 요청이 일치하도록 아파치를 알려줍니다 실제 PHP 스크립트

+0

포인트 컨트롤러와 작업에 .htaccess를 사용할 수 있습니까? –

+1

. 비록 당신이 할 수 있다고하더라도, 그렇게하는 것이 좋은 습관이되지는 않을 것입니다. – Ethan

+0

.htaccess가 무엇을 위해 사용되는지, routes.php는 무엇을 위해 사용됩니까? 나는이 구체적인 예가 아니라 큰 그림을 뜻한다. 무엇에 좋은가? 같은 일을하는 것 같습니다. –

1

지시하는 디렉토리에있는 파일이나 폴더가 아닙니다. u는 검색하고 index.php 컨트롤러으로 전달합니다 (또한 URL에 index.php을 참조 할 필요가 없습니다).

routes.php은 컨트롤러에 대한 uris 맵이며 codeigniter 특정 코드입니다. .htaccess은 codeigniter 코드와 독립적이며 어떤 PHP 프레임 워크와도 독립적으로 사용할 수 있습니다.

+0

그래서 언제 사용합니까? 예를 들어 $ route 배열을 사용하여 index.php 파일을 건너 뛸 수 있습니까? –

+1

둘 다 사용합니다. '.htaccess'는 대부분의 경우 _vanity_로 존재합니다. 최종 사용자에 대한 경로에서'index.php'를 삭제합니다. CI 어플리케이션은'.htaccess' 없이는 완전히 기능 할 것입니다.당신은 항상 codeigniter 응용 프로그램 ('index.php')에 대한 단일 엔트리 포인트가 필요할 것이며, 아파치에 의한 요청 처리와 애플리케이션의 컨트롤러/액션을 일치시키기 위해 codeigniter 라우터가 필요합니다. –

+1

Symfony2와 같은 다른 프레임 워크는 성능 향상을 위해'mod_rewrite'를 위해 http://symfony.com/doc/2.0/cookbook/configuration/apache_router.html 형식으로 라우팅하는 애플리케이션. 그러나 대부분의 간단한 응용 프로그램에서는 이것이 필요하지 않습니다. –

관련 문제