Httpd

現有 httpd 伺服器上的新虛擬主機:預設情況下無法顯示 index.html

  • April 7, 2020

我有一個現有的 Apache httpd 伺服器。所有現有的虛擬主機都有 php 登錄頁面(即 index.php)。然而,新版本有一個簡單的、老式的 html 登錄頁面(即 index.html)。

**如果我在 url 中明確指定它,**我可以獲得 html 登錄頁面,例如http://qux.baz.com/index.html(不是真正的 URL)。

但是,如果我沒有在 url 中明確指定登錄頁面,例如http://qux.baz.com>,它會立即重定向到<https://www.qux.baz.com,這會失敗。

我嘗試在 qux.baz.conf 文件中放置一個 DirectoryIndex 指令;沒有效果,即使重新啟動 httpd。

我在任何地方找到的唯一現有 DirectoryIndex 指令是 php.conf 中的指令。我嘗試將“index.html”添加到它的末尾。也沒有效果。

我的新 conf 文件如下所示(URL 已更改以保護無辜者):

&lt;VirtualHost *:80&gt;
ServerName qux.baz.com
ServerAlias corge.baz.com
DocumentRoot /var/www/html/test
ServerAdmin info@baz.com
&lt;Directory /var/www/html/test&gt;
AllowOverride All
&lt;/Directory&gt;
# RewriteEngine on
# RewriteCond %{HTTP_HOST} !^www\. [NC]
# RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
&lt;/VirtualHost&gt;

(請注意,我故意註釋掉與重寫有關的所有內容)

並且 httpd -S 輸出(再次,更改 URL 以保護無辜者)看起來像

*:443                  is a NameVirtualHost
        default server www.foo.com (/etc/httpd/conf.d/foo-le-ssl.conf:2)
        port 443 namevhost www.foo.com (/etc/httpd/conf.d/foo-le-ssl.conf:2)
                alias foo.com
        port 443 namevhost ip-172-32-29-49.ec2.internal (/etc/httpd/conf.d/ssl.conf:56)
        port 443 namevhost www.plugh.com (/etc/httpd/conf.d/plugh-le-ssl.conf:2)
                alias plugh.com
        port 443 namevhost www.baz.com (/etc/httpd/conf.d/baz-le-ssl.conf:2)
                alias baz.com
        port 443 namevhost www.bar.com (/etc/httpd/conf.d/bar-le-ssl.conf:2)
                alias bar.com
*:80                   is a NameVirtualHost
        default server www.foo.com (/etc/httpd/conf.d/foo.conf:1)
        port 80 namevhost www.foo.com (/etc/httpd/conf.d/foo.conf:1)
                alias foo.com
        port 80 namevhost www.plugh.com (/etc/httpd/conf.d/plugh.conf:1)
                alias plugh.com
        port 80 namevhost www.baz.com (/etc/httpd/conf.d/baz.conf:1)
                alias baz.com
        port 80 namevhost www.bar.com (/etc/httpd/conf.d/bar.conf:1)
                alias bar.com
        port 80 namevhost qux.baz.com (/etc/httpd/conf.d/qux.baz.conf:1)
                alias corge.baz.com
ServerRoot: "/etc/httpd"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/etc/httpd/logs/error_log"
Mutex authdigest-opaque: using_defaults
Mutex watchdog-callback: using_defaults
Mutex proxy-balancer-shm: using_defaults
Mutex rewrite-map: using_defaults
Mutex ssl-stapling-refresh: using_defaults
Mutex authdigest-client: using_defaults
Mutex lua-ivm-shm: using_defaults
Mutex ssl-stapling: using_defaults
Mutex proxy: using_defaults
Mutex authn-socache: using_defaults
Mutex ssl-cache: using_defaults
Mutex default: dir="/run/httpd/" mechanism=default 
Mutex mpm-accept: using_defaults
Mutex cache-socache: using_defaults
PidFile: "/run/httpd/httpd.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="apache" id=48
Group: name="apache" id=48

我顯然在這裡做錯了什麼,但我一點也不知道是什麼。

我真的不敢相信

$$ profanity $$! 我的瀏覽器正在這樣做

$$ profanity $$! 當http://qux.baz.com的虛擬主機不存在或預設情況下不提供 index.html時,他們會記住他們去了哪裡,他們是

$$ profanity $$將我重定向到一個不存在的 URL! 我想沒有人知道告訴瀏覽器永遠記住重定向的方法嗎?

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