Apache2

Apache httpd:別名由虛擬主機繼承?

  • August 10, 2021

當預設伺服器包含

Alias /bla /srv/www/blub

那麼所有的 VirtualHosts 也可以訪問/bla

我必須說我沒有預料到這一點。IMO 虛擬伺服器應該有自己單獨的配置。

這是一個錯誤還是一個功能?我可以關閉此行為嗎?

設置不限於特定的 VirtualHost,而是放置在主伺服器配置文件中(即,httpd.conf 或在配置片段中載入Include和/或IncludeOptional指令)對整個伺服器有效,包括任何和所有 VirtualHost。

這是設計使然:

**範圍:**放置在主配置文件中的指令適用於整個伺服器。如果您只想更改伺服器的一部分的配置,您可以通過將指令放在 、 和 部分中來確定指令<Directory><DirectoryMatch>, <Files>, <FilesMatch>, <Location>範圍<LocationMatch> 。這些部分限制了它們包含在特定文件系統位置或 URL 中的指令的應用。它們也可以嵌套,允許非常細粒度的配置。

httpd 能夠同時為許多不同的網站提供服務。這稱為虛擬主機。指令也可以通過將它們放置在<VirtualHost> 部分中來限定範圍,以便它們僅適用於特定網站的請求。

不要在主 httpd.conf 中放置您不想應用於所有虛擬主機的指令。

引用自:https://serverfault.com/questions/1074105