.htaccess 파일을 프로덕션 서버로 푸시했지만 작동하지 않습니다. 다시 시작하는 것이 다음 단계입니까, 아니면 다른 것을 확인해야합니까?
.htaccess 파일을 프로덕션 서버로 푸시했지만 작동하지 않습니다. 다시 시작하는 것이 다음 단계입니까, 아니면 다른 것을 확인해야합니까?
답변:
.htaccess를 변경하기 위해 다시 시작할 필요 가 없습니다 . 다른 문제가 있습니다.
.htaccess에 명령문이 포함되어 있는지 확인하십시오.
RewriteEngine 켜기
httpd.conf에도있는 경우에도 필요합니다. 또한 httpd 프로세스에서 .htaccess를 읽을 수 있는지 확인하십시오.
error_log를 확인하십시오 . 사용중인 경우 .htaccess의 오류를 알려줍니다 . .htaccess에 의도적 인 구문 오류를 넣는 것은 파일이 사용되고 있는지 확인하는 좋은 방법입니다. 동일한 디렉토리의 모든 페이지에서 500 오류가 발생해야합니다.
마지막으로 httpd.conf에서 다음과 같은 명령을 사용하여 다시 쓰기 로그를 활성화 할 수 있습니다.
RewriteLog "로그 / rewritelog"
RewriteLogLevel 7
이렇게 생성 된 로그 파일은 일치하는 재 작성 규칙과 처리 방법에 대한 세부 정보를 제공합니다.
아니오 :
Apache는 웹 트리 내에 배치 된 특수 파일을 통해 구성의 분산 관리를 허용합니다. 특수 파일은 일반적으로이라고 부르지
.htaccess
만 AccessFileName 지시문 에 모든 이름을 지정할 수 있습니다 ... .htaccess 파일은 모든 요청에서 읽히므로 이러한 파일의 변경 사항은 즉시 적용됩니다.
아파치 문서에서 : 가장 일반적으로 문제는 AllowOverride가 구성 지시문을 준수하도록 설정되지 않는다는 것입니다. 해당 파일 범위에 적용되는 AllowOverride None이 없는지 확인합니다. 이에 대한 좋은 테스트는 .htaccess 파일에 쓰레기를 넣고 다시로드하는 것입니다. 서버 오류가 생성되지 않으면 거의 확실히 AllowOverride None이 적용됩니다.
나는 같은 문제가 있고 AllowOverride에 대한 PiedPiper 게시물이 가장 도움이 된 것 같습니다. httpd.conf 파일에서 "AllowOverride"를 확인하고 모두로 설정되어 있는지 확인하십시오.
.htaccess의 경우 다시 시작하지 않아도 작동하지 않는 경우 가능한 이유는 다음과 같습니다.
AllowOverride httpd.conf 내에서 설정할 수있는 사용자를 설정할 수 없거나 서버 관리자에게 문의해야 할 수 있습니다.
.htaccess 파일 이름을 확인하십시오. htaccess.txt가 아닌 .htaccess 여야합니다 . 생성 방법 은 여기 를 참조 하십시오 .
작동하는지 여부를 확인 하기 위해 Options -Indexes
또는 deny all
일종의 간단한 지시문을 사용하십시오.
리디렉션에 대한 규칙이있는 경우 매번 브라우저 캐시를 지우거나 이전 리디렉션이 캐시 된 경우 작업이 작동하지 않는 것처럼 보입니다.
LogLevel alert rewrite:trace7
. apache를 다시 시작한 후 error.log Hope에서 추적을 볼 수 있습니다. http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging