2012-06-18 2 views
1

mod_rewrite 대신 PHP를 사용하여 URL 정규화를 처리 할 수있는 가능성을 찾고 있습니다. 나는 많은 수의 서로 다른 URL을 주어진 물리적 PHP 페이지에 매핑 할 수 있기를 기대하고 있으며 301과 404를보다 중앙 집중적이고 유지 보수가 가능한 방식으로 처리한다. 여기에는 일반적인 철자 오류, 별칭, 검색 엔진 친숙한 URL 매개 변수 등이 포함됩니다. 이러한 필요성은 mod_rewrite의 힘을 벗어나는 것으로 보이므로 다른 옵션을 고려하고 있습니다.PHP로 사이트 전체 URL 다시 쓰기 처리

나는 내가 htaccess로에서 다음과 같이에 모든 페이지를 매핑 canonical.php 스크립트 (borrowed from this post)를 만들 것입니다 생각 해요 :

RewriteEngine On 
RewriteBase/
RewriteRule ^(.*)$ canonical.php/$1?%{QUERY_STRING} [L] 

그리고 canonical.php 어떤 URL 파싱/DB 조회/리디렉션을 할 것/등이 필요하면 해당 요청에 /the/appropriate/file.php을 간단히 포함 시키십시오.

이것은 합리적인 조치입니까? 그러한 기능은 mod_rewrite과 실제로 실제로 가능합니까? (DB 조회 등을 제외하면) mod_rewrite보다 분명히 느린가? PHP 래퍼보다 강력한 다른 방법론이 있습니까?

답변

0

내가 제안하는 것은 404가 발생했을 때마다 호출되는 PHP 파일이며 발견 된 URL을 저장합니다. 그런 다음 일주일에 한 번 나는 관리 콘솔로 이동합니다. 잘못된 맞춤법이 틀린 오래된 URL, searchengine의 기록 URL을 현재 존재하는 URL에 매핑 한 다음 구문 분석 단추를 누르면 새로운 업데이트 된 .htaccess 파일이 나옵니다.

이렇게하면 데이터베이스로드,로드 시간, 컴파일 시간 및 리디렉션 시간이 줄어 듭니다.

그냥 2 센트입니다.

+0

좋은 아이디어, 나는 그 이상을 찾고 있지만 .htaccess 파일을 자동 생성하는 것은 나쁜 계획이 아닙니다. .htaccess의 행 수가 더 동적 인 솔루션보다 더 큰 속도 저하를 가져올 수있는 지점이 있는지 궁금합니다. – dimo414

+0

30k + 라인의 안티 봇, 해킹, .htaccess를 통해 처리 된 스팸이 있으며 속도와 관련하여 문제가없는 사람들이 있습니다. – Tschallacka