2011-10-04 5 views
7

특정 (특정) 페이지, PHP 또는 htaccess를 빠르게 재지 정하는 방법은 무엇입니까? 많은 다른 페이지가 트래픽이 많은 사이트에서 이러한 리디렉션이 필요할 수 있음을 고려하십시오. 예 : ,빠른 리디렉션, PHP 또는 htaccess?

redirect 301 old.php http://site.com/new.php 

답변

6

에 따라 다릅니다. 일반적으로 .htaccess는 PHP를 호출하는 오버 헤드가 없기 때문에 더 빠릅니다. 그러나 문서 루트 수준에서 하나의 .htaccess 파일에 1000 개의 리디렉션이있는 경우 Apache는 모든 페이지로드시 모두를 확인해야합니다. 즉, index.php를 제공하는 대신 1000 개의 정규 검사를 수행해야합니다. 다음은 index.php를 제공합니다. 전반적으로 리디렉션이 많은 경우 리디렉션되지 않는 많은 페이지가 PHP에서 처리됩니다. 이 경우 리디렉션 할 필요가없는 페이지에 대해 추가 오버 헤드를 지불하지 않아도됩니다.

7

.htacess이 PHP를 호출하기 전에 처리 (단순한 일반 PHP는 리디렉션에는 데이터베이스 쿼리가 포함되지)

header("Location: /new.php",TRUE,301); 

또는

htaccess로

PHP : 무슨 일이 빠르다 그래서 당신이 그것을 만들 수 있다면, 그것은 분명 더 빠를 것입니다.

+2

그러나. .htaccess 자체는 각 히트에 대해로드/파싱되므로, PHP는 일부 상황에서 (특히 복잡한 .htaccess를 사용하는 경우) 더 빠를 수 있으며, 특히 캐시가있는 경우 더욱 그렇습니다. –

+1

복잡한 .htaccess가있는 경우 어쨌든 구문 분석되어 PHP 처리 시간에 추가되므로 아무런 이득이 없습니다. – Einacio

2

htaccess가 사용되면 PHP 처리가 시작되기 전에 Apache가 처리합니다. 하나 또는 둘 다를 사용하여 벤치 마크를 수행하지는 않았지만 두 가지 모두 존재할 때 htaccess는 항상 빠릅니다.

또한 htaccess redirect는 regex를 사용하여 여러 개의 이전 파일에 적용 할 수 있으므로 사용자의 작업이 줄어 듭니다.

+0

htaccess는 항상 빠를 것입니다. 그렇지만 페이지가있는 경우에만 골짜기 htacess에 가기 위하여 관심사; 페이지의 99 %가 리디렉션되지 않았지만 .htaccess에 1,000 줄이있는 경우 : 모든 요청에 ​​대해 .htaccess를 구문 분석하면 PHP 리디렉션을 사용하지 않는 이점이있는 페이지의 1 %가 더 느려지고 있습니다. – spiritoo