![Apache에서 일치하지 않는 도메인/하위 도메인에 대한 기본 처리](https://rvso.com/image/1288723/Apache%EC%97%90%EC%84%9C%20%EC%9D%BC%EC%B9%98%ED%95%98%EC%A7%80%20%EC%95%8A%EB%8A%94%20%EB%8F%84%EB%A9%94%EC%9D%B8%2F%ED%95%98%EC%9C%84%20%EB%8F%84%EB%A9%94%EC%9D%B8%EC%97%90%20%EB%8C%80%ED%95%9C%20%EA%B8%B0%EB%B3%B8%20%EC%B2%98%EB%A6%AC.png)
여러 VirtualHost가 포함된 Apache2 구성이 있습니다. 내 DNS는 *.<domain>.<tld>
여러 도메인을 허용하도록 설정되어 있습니다. 모든 것이 올바르게 작동하지만 로 이동하면 something-random-here.example.com
잘못된 VirtualHost가 선택되는 것 같습니다(첫 번째 또는 마지막으로 찾은 것으로 추측합니다). VirtualHost 항목이 도메인이나 하위 도메인과 일치하지 않는 경우 Apache에게 특정 규칙을 사용하도록 지시하는 방법이 있습니까? 404를 반환하고 싶습니다.
답변1
이름이 일치하지 않으면 Apache는 첫 번째 가상 호스트를 사용합니다. 임의의 이름을 가진 첫 번째 가상 호스트로 새 가상 호스트를 구성하고 원하는 것을 표시하거나 404 페이지를 반환하기만 하면 됩니다.
답변2
와일드카드에는 사이트 구성 파일이 포함됩니다.
Include path/to/site/confs/*httpd.conf
예상 순서대로 로드되도록 사이트 conf 파일을 구성합니다. 예...
01-httpd.conf
02-site1-httpd.conf
03-site2-httpd.conf
등...
Apache는 이를 순서대로 읽습니다. 그런 다음 일치하지 않는 가상 호스트를 포착하고 기본 사이트를 로드하는 대신 404를 반환하기 위해 항상 마지막으로 로드되는 사이트를 만듭니다.
99-catchall-httpd.conf
<VirtualHost *:8080>
ServerName null
ServerAlias *
Redirect 404 /
</VirtualHost>
<VirtualHost *:8443>
ServerName null
ServerAlias *
Redirect 404 /
</VirtualHost>
포트를 httpd가 수신하는 포트로 교체하십시오. 또는 특정 인터페이스를 수신하는 httpd가 있는 경우 대신 다음과 같이 각 인터페이스에 대한 catchall을 추가해야 합니다.
<VirtualHost 192.168.1.101:8080>
ServerName null
ServerAlias *
Redirect 404 /
</VirtualHost>
<VirtualHost 192.168.1.101:8443>
ServerName null
ServerAlias *
Redirect 404 /
</VirtualHost>
<VirtualHost 192.168.1.102:8080>
ServerName null
ServerAlias *
Redirect 404 /
</VirtualHost>
<VirtualHost 192.168.1.102:8443>
ServerName null
ServerAlias *
Redirect 404 /
</VirtualHost>
도움이 되었기를 바랍니다. 나는 이 방법을 사용하여 내가 지정한 순서대로 사이트를 로드하고 일치하지 않는 가상 호스트가 의도치 않게 예상치 못한 사이트를 로드하는 것을 방지합니다.
답변3
언급 했듯이 Moritz Both
Apache2는 요청한 것과 일치하지 않는 경우 찾은 첫 번째 가상 호스트를 사용합니다.
Apache2를 처음 설치하면 템플릿으로 사용하거나 수정하거나 삭제할 수 있는 기본 웹 사이트 conf가 있습니다. 그리고 저는 항상 000-default.conf가 실제로 무엇을 위한 것인지 궁금했습니다. 왜냐하면 000-default.conf에도 default.conf가 있기 때문입니다. 말한 내용을 읽고 나면 Moritz Both
이제 모든 것이 더 이해가 됩니다.
내 서버에 대해 내가 한 일은 기본 호스트 이름(웹사이트)에 대한 구성을 000-default.conf 파일에 복사하고 a2ensite 000-default
.
이제 내 웹사이트에 일치하지 않는 도메인 요청이 있을 때마다 내 실제 기본 페이지의 복사본인 000-기본 페이지가 제공됩니다.