도메인에 폴더를 할당하기 위해 Apache 재작성

도메인에 폴더를 할당하기 위해 Apache 재작성

올바른 방향을 알려주세요.

내 서버에 도메인을 설정하기 위해 .htaccess를 사용하고 있습니다.

/domain.com/* 폴더의 파일에 액세스하려면 domain.com이 필요합니다. 파일이 없으면 /domain.com/index.php를 로드하고 domain.com/images/image.jpg는 /domain.com/images/image.jpg 파일을 로드해야 합니다.

한 가지 점은 302 "파일 이동" 알림을 브라우저에 보내지 않고 모든 것을 로드해야 한다는 것입니다.

당신의 도움을 주셔서 감사합니다!

답변1

도메인이 많거나, 도메인이 몇 개 밖에 없는데 모두 거의 동일한 구성을 갖고 있는 경우에 이런 상황이 발생합니다.동적 대량 가상 호스팅위해 만들어졌습니다. 다음과 같은 내용이 httpd.conf파일(또는 에 포함된 파일 ) 에 저장됩니다 httpd.conf.

UseCanonicalName Off
VirtualDocumentRoot /var/www/%0/htdocs
ErrorLog /var/www/logs/error_log
CustomLog /var/www/logs/access_log combined

나도 제안하고 싶다

DirectoryIndex index.php

index.php클라이언트가 파일 이름을 지정하지 않은 경우 디렉터리에 파일을 로드합니다 .

답변2

파일 경로에 매핑하려는 모든 단일 도메인에 대해 가상 호스트를 생성하고 각 가상 호스트의 DocumentRoot를 파일 시스템의 실제 경로로 지정해야 합니다. 그런 다음 설정되지 않은 도메인에 대한 다른 모든 요청이 DEFAULT 가상 호스트를 사용하도록 DEFAULT 가상 호스트가 있는지 확인하고 싶을 것입니다. 마지막으로 요청 중인 파일이 존재하지 않는 경우 대체 콘텐츠를 제공할 수 있도록 사용자 정의 404 오류 처리기를 생성할 수 있습니다. 일반 메시지와 /images/image.png를 표시하는 custom_404.php라는 PHP를 생성해야 합니다.

# Default Domain (Undefined domains will fall back to this)
<VirtualHost *:80>
    ServerAlias www.defaultdomain.com
    DocumentRoot /var/www/default/htdocs
    ErrorDocument 404 /custom_404.php
    ErrorLog /var/www/default/logs/error_log
    CustomLog /var/www/default/logs/access_log combined
</VirtualHost>

# domain1.com
<VirtualHost *:80>
    ServerName domain1.com
    ServerAlias www.domain1.com
    DocumentRoot /var/www/domain1.com/htdocs
    ErrorDocument 404 /custom_404.php
    ErrorLog /var/www/domain1.com/logs/error_log
    CustomLog /var/www/domain1.com/logs/access_log combined
</VirtualHost>

# domain2.com
<VirtualHost *:80>
    ServerName domain2.com
    ServerAlias www.domain2.com
    DocumentRoot /var/www/domain2.com/htdocs
    ErrorDocument 404 /custom_404.php
    ErrorLog /var/www/domain2.com/logs/error_log
    CustomLog /var/www/domain2.com/logs/access_log combined
</VirtualHost>

도움이 되었기를 바랍니다!

-케빈

답변3

이를 구성하려면 가상 호스트를 사용해야 합니다. 다음은 샘플 가상 호스트 파일입니다.

<VirtualHost *:80>
    ServerName example.net
    ServerAlias www.example.net
    ServerAdmin [email protected]
    DocumentRoot /var/www/vhosts/www.example.net/html
    ErrorLog /var/www/vhosts/www.example.net/logs/errors.log
    Customlog /var/www/vhosts/www.example.net/logs/access.log combined

</VirtualHost>

이 파일을 /etc/httpd/conf.d/ 안에 넣고 예를 들어 vhost_example.net.conf라고 부르세요.

그런 다음 예를 들어 마지막 줄에 /etc/httpd/conf/httpd.conf를 추가합니다.

/etc/httpd/conf.d/vhost_example.net.conf 포함

(또는 /etc/httpd/conf.d/*.conf 포함) 그리고 httpd.conf 파일에서 이 줄의 주석 처리를 제거해야 합니다.

이름VirtualHost *:80

관련 정보