하위 폴더의 호스트 기본 도메인

하위 폴더의 호스트 기본 도메인

하위 디렉토리를 내 기본 도메인의 public_html 역할로 만들고 해당 도메인 하위 디렉토리에서도 작동하는 솔루션을 얻는 데 문제가 있습니다.

내 호스팅을 사용하면 여러 사이트를 호스팅할 수 있으며 모두 훌륭하게 작동합니다. 내 폴더 아래에 하위 폴더를 설정했습니다.~/public_html/호출된 디렉토리/도메인/, 여기에 각각의 개별 웹사이트에 대한 폴더를 만듭니다. 예를 들어

  • public_html
    • 도메인
      • 웹 사이트 하나
      • 웹 사이트 2
      • 웹사이트세
      • ...

이렇게 하면 내 사이트가 깔끔하고 깔끔하게 유지됩니다. 유일한 문제는 내 "기본 도메인"을 이 시스템에 맞추는 것이었습니다. 내 기본 도메인이 어떻게든 내 계정(또는 Apache 등)에 연결되어 있는 것 같아서 이 도메인의 "문서 루트"를 변경할 수 없습니다. cPanel에 추가하는 다른 도메인("애드온 도메인")에 대한 문서 루트를 문제 없이 정의할 수 있습니다. 그러나 주요 도메인은 다릅니다.

.htaccess 파일을 편집하여 기본 도메인을 하위 디렉터리로 리디렉션하라는 지시를 받았습니다. 이것은 훌륭하게 작동하는 것 같았고 내 사이트는 홈/색인 페이지에서 잘 작동합니다.

내가 겪고 있는 문제는 브라우저를 탐색하여 기본 사이트의 이미지 폴더(예를 들어)를 다음과 같이 말하려고 하면 다음과 같다는 것입니다.

www.yourmaindomain.com/images/

그런 다음 리디렉션을 무시하고 다음과 같이 URL에 전체 서버 디렉토리를 표시합니다.

www.yourmaindomain.com/domains/yourmaindomain/images/

실제로는 여전히 올바른 "/이미지 인덱스" 페이지가 표시되고 내 모든 이미지 목록이 표시됩니다.

다음은 제가 사용하고 있는 .htaccess 파일의 예입니다.

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?yourmaindomain.com$
RewriteCond %{REQUEST_URI} !^/domains/yourmaindomain/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /domains/yourmaindomain/$1

RewriteCond %{HTTP_HOST} ^(www.)?yourmaindomain.com$
RewriteRule ^(/)?$ domains/yourmaindomain/index.html [L]

이 htaccess 파일이 올바르게 보입니까? 내 기본 도메인이 애드온 도메인처럼 작동하고 해당 하위 디렉터리가 리디렉션 규칙을 따르도록 만들기만 하면 됩니다.

답변1

나는 그것에 대해 불량배를 부를 것입니다 DirectorySlash.

  1. 디렉토리에서만 발생합니까?
  2. 후행 슬래시가 없는 경우에만 발생합니까(즉 , /images로 가도 괜찮습니까)?/domain/yourdomain/images//images/

이 경우 3가지 옵션이 있습니다.

  1. 모든 링크에 슬래시( /) 가 있는지 확인하세요.
  2. 설정 DirectorySlash off(SEO 관점에서는 좋지 않은 이중 페이지/디렉토리로 이동하게 됩니다).
  3. RewriteRule마지막 항목 바로 앞에 a를 추가해 보세요 index.html. (즉석에서 생각한 것이므로 작동할지 모르겠습니다.)

    RewriteCond %{REQUEST_FILENAME} -d  
    RewriteCond %{REQUEST_FILENAME} !/$  
    RewriteRule ^(.*) $1/  
    

답변2

문제 중 하나는 정규식입니다.~ 아니다당신의 점을 탈출. 즉, 단순한 점이 아닌 "모든 문자"로 간주됩니다. 대신에

^(www.)?domain.tld$

당신은 가지고 있어야합니다

^(www\.)?domain\.tld$

관련 정보