답변:
Apache 프로젝트 의 권장 사항 은 다음과 같습니다.
일반적으로 주 서버 구성 파일에 액세스 할 수없는 경우 .htaccess 파일 만 사용해야합니다. ... 일반적인 오해 는 사용자 인증 및 mod_rewrite 지시문이
.htaccess
파일에 들어가야한다는 것입니다 .
따라서 AllowOverride None
기본 httpd.conf (및 / 또는 하위 섹션 Include
)에 다른 지시문을 모두 설정 하십시오.
Apache가 구성 되어 AllowOverride None
있지 않은 경우 .htaccess
파일 사용 여부에 관계없이 성능이 약간 저하 됩니다.
이는 모든 요청 아파치 .htaccess
에 대해 요청 된 자원으로 이어지는 모든 (하위) 디렉토리에 잠재적 파일 이 있는지 확인해야하기 때문입니다 . 예를 들어 / www / htdocs / example 디렉토리에서 파일을 요청하면 아파치는 다음 파일을 찾아야합니다.
/.htaccess
/www/.htaccess
/www/htdocs/.htaccess
/www/htdocs/example/.htaccess
따라서 해당 디렉토리에서 각 파일 액세스에 대해 해당 파일이없는 경우에도 4 개의 추가 파일 시스템 액세스가 있습니다. (AllowOveride가 /로 설정된 경우)
( man 2 stat
) 자체에 사용되는 시스템 호출 은 그다지 비싸지 않으며 일반적으로 실제 디스크를 폴링하여 실제 IO 요구 사항을 제한하는 대신 파일 시스템 캐시가 사용되지만 이 기사가 주장하는 것처럼 여전히 추가 할 수 있습니다 .
하나 이상의 실제 .htaccess
파일이 실제로 존재하는 경우, 아파치는 여전히 파일을 open
읽고 읽고 ( 다른 IO 읽기 작업 및 일반적으로 파일 시스템 속성 을 업데이트하기 위한 IO 쓰기 작업을 트리거 atime
) 파일을 읽고 구문 분석 을 수행하기 전에 파일 을 구문 분석 해야합니다.
지시문이 main에있을 때와 달리 httpd.conf
시작시 한 번만 구문 분석하기 위해 아파치가 .htaccess
필요하면 각 파일은 각 요청마다 다시 해석되어야합니다.
IO 작업 외에도 .htaccess 파일을 구문 분석하는 데 드는 비용은 복잡도에 따라 다릅니다.
이를 위해서는 신중한 벤치마킹이 필요합니다.
귀하의 질문에 대한 하나의 정답이 있다고 생각하지 않습니다. htaccess로드 시간에 영향을 줄 수있는 많은 변수가 있습니다 :
더 많은 정보:
.htaccess를 사용하거나 사용하지 않고 테스트했으며 속도와 오버 헤드의 차이를 전혀 찾을 수 없었습니다. 16 개의 사이트 만 운영하고 초고속 서버이므로 밀리 초를 추적하는 것은 거의 불가능합니다. 수백 개의 사이트를 실행하는 서버에서 @Iain이 테스트하고 확인한 것처럼 오버 헤드가 눈에 may 수 있습니다.
나는 개인적으로 가상 호스트에 .conf 파일을 사용하여 모든 것을 수행하지만 .htaccess는 모든 것을 완벽하게 제어 할 수 있으며 깨끗하고 아파치의 메모리에 한 번로드됩니다. 내 워드 프레스 다시 쓰기 규칙조차도 .conf 파일에 있으므로 절대로 깨지지 않습니다.