문제

하위 도메인을 기반으로 특정 콘텐츠를 제공하는 사이트가 있습니다. 따라서 동일한 파일 세트이며 사이트 페이지의 헤더 및 일부 정보는 하위 도메인을 기반으로 변경됩니다.

하위 도메인을 기반으로 다른 htpassword 인증이 있어야하지만 htaccess에서 if/유형의 일을 수행하는 방법에 대한 정보를 찾을 수 없습니다.

기본적으로 내가 필요한 것은 다음과 같습니다.

subdomain = 'abc'이 htpassword 파일을 사용하는 경우

subdomain = 'def'인 경우이 htpassword 파일을 사용하십시오.

이 작업을 수행 할 수 있습니까?

도움이 되었습니까?

해결책

다음과 같은 것을 시도하십시오.

SetEnvIf Host ^abc\. HOST_ABC
SetEnvIf Host ^dev\. HOST_DEF

<IfDefine HOST_ABC>
    AuthUserFile …
</IfDefine>
<IfDefine HOST_DEF>
    AuthUserFile …
</IfDefine>

다른 팁

어떤 웹 서버를 사용하고 있습니까?

여러 다른 서버에서 작동 할 수있는 기술 (Apache에서 확실히 작동)은 각 하위 도메인에 해당하는 디렉토리에 다른 .htaccess 파일을 갖는 것입니다.

만약 그것이 나라면 (그리고 나는 전에 이것을 생각하지 않았다) 나는 다음과 같습니다.

  1. 내부 리디렉션 사용을 사용하십시오 mod_rewrite 일부 요인에 따라 다른 사이트 루트 (/suba 또는/subb)에
  2. 사용 Symlinks 공개 디렉토리에서는 .htaccess는 아닙니다

그래서:

/sites/subdomain_a/.htaccess
/sites/subdomain_a/pub
/sites/subdomain_b/.htaccess
/sites/subdomain_b/pub

어디

/sites/subdomain_a/pub == /sites/subdomain_b/pub

사용

ln -s

또는 유사합니다. 그런 다음 mod_rewrite를 사용하여 올바른 사이트 루트로 (내부) 리디렉션하십시오. 나 생각한다 mod_rewrite가 .htaccess가로드되기 전에 실행됩니다.

즉, 하위 도메인에 따라 다른 .htaccess로 동일한 사이트 파일을 효과적으로 제공한다는 것을 의미합니다.

이것이 도움이되기를 바랍니다.

더 나은 것이 존재하는지 확인하는 데 관심이있을 것입니다.

htaccess는 지침 목록이 아니기 때문에 if/else를 사용할 수 없습니다. 그러나 조건부 블록을 사용하는 경우u003CIfModule mod_rewrite.c> 또는u003CIfDefine something> , 당신은 어떤 하위 도메인을 요청하는지에 따라 다른 지시문을 사용할 수 있습니다. 나는 당신이 어느 것을 사용할 것인지 잘 모르겠습니다 ...

파일 위에 하나의 .htaccess 파일 하나를 넣고 사용 할 수도 있습니다.u003CDirectory something> 각 하위 도메인에 대해 다른 규칙을 지정하려면 하위 도메인 디렉토리를 공유 파일과 동일한 디렉토리에 동일한 디렉토리로 만들 수 있습니다.

따라서 이것은 웹 루트 위의 디렉토리입니다.
.htaccess
SiteFiles
subdomain1 (symlink to sitefiles)
subdomain2 (symlink to sitefiles)
...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top