.htaccess 파일에 서버 기반 조건문을 포함할 수 있나요?

.htaccess 파일에 서버 기반 조건문을 포함할 수 있나요?

개발 서버와 라이브 서버가 있는데 둘 다 Apache에서 웹사이트를 실행하고 있습니다. 내 .htaccess 파일에는 여러 mod_rewrite 명령 및 기타 중요한 항목 외에도 라이브 서버에 대한 인증 액세스 제어 기능이 있습니다. (개발서버는 제 로컬 Mac에 있어서 거기에는 필요없네요...)

이제 dev .htaccess 파일(Auth 명령을 재정의함)을 복사할 수 없기 때문에 .htaccess를 라이브 서버에 동기화하기가 어렵습니다. 따라서 라이브 파일을 수동으로 편집해야 합니다.

.htaccess 파일에 조건을 추가하는 방법이 있나요? 나는 다음과 같은 것을 상상하고 있습니다 :

<On Live_Server>
  AuthName "Restricted Area"
  AuthType Basic
  AuthUserFile /home/lmiv/.htpasswds/.htpasswd 
  Require valid-user
</on>

답변1

아주 가깝습니다. 그렇습니다. 당신이 사용할 수있는<IfDefine>이에 대해 차단합니다. 추가 지시문을 사용하여 Apache를 시작 해야 하며 -D, 이는 Apache 구성의 어느 곳에서나 사용할 수 있습니다. 예를 들어 -DLive_Server프로덕션에서 명령줄 옵션을 추가하는 경우 모든 환경의 구성에서 이 작업을 수행할 수 있습니다.

<IfDefine Live_Server>
  AuthName "Restricted Area"
  AuthType Basic
  AuthUserFile /home/lmiv/.htpasswds/.htpasswd 
  Require valid-user
</IfDefine>

또한 반대 작업을 수행하고 개발 환경에서 다음과 같이 정의한 -DDev_Server다음 일치를 반대로 할 수도 있습니다.

<IfDefine !Dev_Server>

나는 프로덕션 환경의 "특별한" 구성이 덜 필요하고 -D명령줄에 추가하기 위해 프로덕션 인스턴스를 다시 시작할 필요가 없는 후자를 선호합니다.

관련 정보