
내 웹 디렉토리의 파일을 읽을 때마다 대신 시작 시 한 번만 구문 분석되도록 mod_rewrite 규칙을 httpd 구성에 어떻게, 어디에 배치합니까?
추가 정보:
- 모든 스크립트가 .htaccess 파일에서 작동한다고 가정
- Apache 2.0.52를 실행하는 RHEL4
- 시스템의 여러 하위/도메인
감사해요
답변1
질문을 이해했는지 잘 모르겠지만 "현재 .htaccess 파일에 다시 쓰기 규칙이 있고 이를 전체 아파치 구성에 넣고 싶습니다."라는 질문이 있는 경우. <Directory /path/to/directory/where/htaccess/is>
Apache 구성에 지시문을 추가 하고 .htaccess 파일의 내용을 여기에 넣어야 합니다.
.htaccess가 /srv/web/site1/folder1/에 있으면 Apache 구성 파일에 다음을 추가하십시오.
<Directory /srv/web/site1/folder1>
Paste content of .htaccess here
</Directory>
답변2
답변은 모두 여기에 있습니다. 모든 답변이 함께 묶인 것은 아닙니다.
memnoch_proxy는 다음과 같이 말합니다.
".htaccess 파일에서 수정된 규칙은 모든 요청에서 읽혀집니다. /etc/httpd/httpd.conf 및 /etc/httpd/conf.d/*는 그렇지 않습니다. SIGUSR1을 보내는 서비스 httpd reload를 사용하여 해당 파일에 대한 새로운 변경 사항을 트리거합니다. 작업자가 정상적으로 다시 시작할 수 있도록 지원합니다."
따라서 .htaccess 파일을 사용하여 사이트 및/또는 폴더 구조에 적용되는 다시 쓰기 규칙을 정의하는 것처럼 들립니다.
디렉토리나 페이지에 액세스할 때마다 규칙을 다시 읽고 재해석하는 것을 방지하려면 웹 사이트의 중앙 Apache 구성 파일 내에 규칙을 배치해야 합니다.
이러한 규칙의 위치는 시스템 관리자가 시스템을 배치한 방식에 따라 다릅니다. Red Hat Enterprise Linux 환경에서는 다음과 같은 파일에 배치하는 것이 좋습니다.
다시 쓰기-rules.conf에 위치한
/etc/httpd/conf.d
Apache의 기본 빌드가 있는 시스템에서는 이를 파일의 끝에 배치해야 할 수도 있습니다.
httpd.conf다음 위치에 있는 파일
/usr/local/아파치/conf
답변3
httpd.conf 파일에 "include modrewrite.conf"와 같은 내용을 추가하세요. 그런 다음 moderewrite.conf 파일에 다시 쓰기 규칙을 추가합니다.
또한 컴파일되지 않은 경우 mod_rewrite 모듈을 포함했는지 확인하세요.
답변4
RewriteRules는 규칙과 관련된 서버의 리소스에 액세스할 때마다 처리됩니다. 규칙이 어디에 배치되어 있는지에 관계없이 매번 구문 분석됩니다.
그러나 모든 리소스 요청 시 디스크에서 .htaccess를 읽는 오버헤드가 마음에 들지 않는다는 의미라면 radius' 응답이 원하는 것입니다. 내용을 배치한 후 .htaccess 파일을 제거하라는 추가 지침이 필요합니다. 기본 아파치 구성 파일에 있습니다.