나는 mod-rewrite가 성취하는 많은 긍정적 인 것들을 알고있다. 그러나 부정적인 점이 있습니까? 분명히 규칙이 잘못 작성되면 문제가 발생할 것입니다. 하지만 대량 사이트를 운영하고 mod-rewrite를 지속적으로 사용하는 경우 성능에 심각한 영향을 미칠 수 있습니까? Google에서 일부 벤치 마크를 빠르게 검색했지만 많이 찾지 못했습니다.Mod-Rewrite를 사용할 때 부작용이 있습니까?
답변
중요한 성능 문제없이 수백만/히트/월의 사이트에서 mod_rewrite를 사용했습니다. 당신은 당신의 규칙에 따라 먼저 적용되는 재 작성을 알아야합니다.
mod_rewrite를 사용하는 것이 현재 언어로 URL을 구문 분석하는 것보다 빠를 가능성이 큽니다.
성능에 대해 정말로 염려하는 경우 .htaccess
개의 파일을 사용하지 마십시오. 속도가 느립니다. 모든 다시 쓰기 규칙을 Apache 구성에 넣습니다. 시작시 한 번만 읽습니다. .htaccess
부모 폴더에있는 파일과 함께 모든 요청에 대해 .htaccess
개의 파일이 다시 파싱됩니다.
아파치의 성능이 걱정된다면, 재 작성 규칙이 많은 경우 고려해야 할 한 가지는 "건너 뛰기"플래그를 사용하는 것입니다. 규칙에 대한 일치를 건너 뛰는 방법입니다. 그래서, 어떤 오버 헤드라도 일치에 소비되었을 것이고 저장됩니다.
필자는 "건너 뛰기"플래그를 많이 사용하는 프로젝트에 있었고 파일에 쓰여진 순서에 따라 유지 관리가 어려웠습니다.
어떤 상황에서는 [L] 플래그를 사용하는 것이 더 좋을 수 있습니다 (현재 하나가 일치하면 * all * 다음 규칙을 건너 뛰도록 지정해야합니다). –
하위 디렉토리/새로운 현지화에서 .htaccess를 방지하려면 플래그를 "END"로 설정하십시오. – 18C
Ryan이 위에 언급 한 내용을 되풀이하기 위해 .htaccess
의 규칙은 구성 파일에 규칙이있는 것과 비교하여 바쁜 사이트의로드 시간을 크게 해칠 수 있습니다. 우리는 처음에 이것을 (~ 60million pages/month) 시도했지만 서버가 흡연하기 시작할 때까지 그리 오래 가지 못했습니다 :)
설정에 규칙이 있다는 명백한 단점은 사용자가 설정을 수정할 때마다 설정을 다시로드해야한다는 것입니다. 규칙.
마지막 플래그 ("L")는보다 자주 액세스되는 규칙이 처음으로 평가되고 가장 먼저 평가되면 규칙 실행 속도를 높이는 데 유용합니다. 그래도 규칙을 길게 설정하면 관리가 훨씬 까다로워 질 수 있습니다. - 어느 날 아침 나는 내 규칙 목록을 중간에서 편집하고 두 개 이상의 덫을 채우는 최상위를 차지하면서 두 차례의 매우 불만스러운 시간을 낭비했습니다. 예정된!
우리는 관련 벤치 마크를 찾는 데 어려움을 겪었고 우리 자신의 내부 테스트 세트를 완성했습니다. 일단 규칙을 정렬하고 적절하게 정렬하고 Apache 구성 파일에 포함 시키면 성능에 부정적인 영향을 거의주지 못했습니다.
- 1. 정확히 메서드에 부작용이 있습니까?
- 2. ModRewrite를 사용하여 확장자 제거
- 3. 순수 함수 프로그래밍에서 부작용이 있습니까?
- 4. 자바 : 왜이 방법은 부작용이 있습니까?
- 5. 많은 정적 기능을 사용하는 부작용이 있습니까?
- 6. 동적 SQL에 대한 CommandType을 제외하고 부작용이 있습니까?
- 7. 여러 TrackingParticipants가 작동하지 않고 재미있는 부작용이 있습니까?
- 8. ModReWrite를 통한 모바일 리디렉션 간단한 코드
- 9. Diggbar modrewrite - modrewrite를 통해 URL을 어떻게 전달합니까?
- 10. NOLOCK이 코드에 대한 부작용이 있습니까 EF4
- 11. 이벤트에서 null 처리기를 제거하는 부작용이 있습니까?
- 12. 장식자는 부작용이 없어야합니까?
- 13. PHP의 부작용이 해시 함수로 직렬화됩니다.
- 14. Google지도를 사용할 때 문제가 있습니까?
- 15. <head> 태그에 jQuery를로드하지 않으면 부작용이 있습니까?
- 16. 더 이상 활동의 부작용이 보이지 않습니까?
- 17. jquery 선택기에서 문자열 연결 또는 jQuery를 사용하면 부작용이 있습니까?
- 18. Java 응용 프로그램에 많은 프레임 워크를 추가하면 부작용이 있습니까?
- 19. foreach 문 내부에서 돌아 오는 부작용이 있습니까? 내 질문에 유사
- 20. VC++의 함수 수준 연결에는 어떤 부작용이 있습니까?
- 21. TFS에서 Reader 및 Contributor 그룹을 삭제해도 부작용이 있습니까?
- 22. 레이어 윈도우를 사용할 때 AnimateWindow를 AW_BLEND와 함께 사용할 수 있습니까?
- 23. 타사 라이브러리를 사용할 때 IOC를 사용할 수 있습니까?
- 24. Doctrine :: generateYamlFromDb()를 사용할 때 사용할 접두사를 지정할 수 있습니까?
- 25. TeamBuild를 사용할 때 "글로벌"대기열을 사용할 수 있습니까?
- 26. ACE를 사용할 때 스레드 로컬 변수를 사용할 수 있습니까?
- 27. 전략 패턴을 사용할 때 어떤 이점이 있습니까?
- 28. AJAX를 RIA로 사용할 때 단점이 있습니까?
- 29. -Bymbolic-functions을 사용할 때 단점이 있습니까?
- 30. 래스터에서 색조를 사용할 때 그래픽이 비어 있습니까?
좋은 답변이지만, * 사용 가능 * .htaccess 파일이 문제이므로 사용하지 않는 것이 좋습니다. 완전히 비활성화하지 않으면 아무 곳에서나 하나의 .htaccess 파일이 없더라도 모든 경로 세그먼트에 대해 stat-hit을 유지할 수 있습니다. –
AllowOverride None을 사용하여 .htaccess를 비활성화하십시오. – NateS