我剛剛在 Ubuntu 上安裝了 apache 伺服器,一切順利,我可以訪問起始頁面。但是,我想建立另一個位於 /var/www/test 的頁面。我希望能夠透過地址存取它http://xxx.xxx.xxx.xxx/測試。我已經創建了目錄,插入了 html 文件,將我的配置更改為:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<Directory /var/www/test>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
但不幸的是,當我嘗試訪問此頁面時,出現錯誤:未找到 在此伺服器上找不到請求的 URL。
Apache/2.4.29 (Ubuntu) 伺服器
我在這裡做錯了什麼?
答案1
URL空間和磁碟上的檔案之間的對應關係是由Apache的文檔根目錄指示。如果您的主檔案或<VirtualHost>
設定檔中有如下行:
DocumentRoot /var/www/html
(你可能已經設定了這個/etc/apache2/sites-enabled/000-default.conf
),那麼每當你向伺服器請求時http://example.com/path/to/file.html
,你都會得到 file 的內容/var/www/html/path/to/file.html
。
index.html
在您的情況下,您放置了一個名為in的檔案(可能)/var/www/test
,但伺服器正在搜尋/var/www/html/test/index.html
.
這目錄您新增的部分僅指定 的權限和其他選項/var/www/test
,它不會將其包含在伺服器的搜尋路徑中。此外,目錄選項是繼承的,因此/var/www/test
目錄繼承了選項/var/www
(無需再次指定相同的選項)。
答案2
首先,您不必<Directory>
為網站中的每個目錄建立一個新區塊。其次,如果您嘗試存取新檔案而不指定其名稱,請確保它是索引檔案。例如:您建立了一個/var/www/test/index.html
文件,您有一個DirectoryIndex index.html
指令(有關其使用的更多範例和資訊可以在這裡)然後您嘗試透過瀏覽器存取http://localhost/test
或http://localhost/test/index.html
(我假設您已經配置了DocumentRoot
指向該/var/www
目錄的指令。