Apache2 找不到新建立的頁面

Apache2 找不到新建立的頁面

我剛剛在 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/testhttp://localhost/test/index.html(我假設您已經配置了DocumentRoot指向該/var/www目錄的指令。

相關內容