添加后未找到 Apache2 子域名

添加后未找到 Apache2 子域名

情况如下

我有example.com指向我的服务器的域名Apache2运行。目前我有两个conf(一个用于HTTP,一个用于HTTPS),它们接受example.com请求并显示存储在文件夹中的页面/var/ww/html/example

HTTP 会议example.com.conf

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/example
ServerName example.com
ServerAlias www.example.com
ErrorLog logs/example.com-error_log
CustomLog logs/example.com-access_log common
Redirect permanent / https://example.com
RewriteEngine on
RewriteCond %{SERVER_NAME} =example.com [OR]
RewriteCond %{SERVER_NAME} =www.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

HTTPS conf 是基本conf 生成,certbot没有变化

但我现在想要实现的是让子域名demo.example.com简单地指向根 html 文件夹/var/www/html/(所以如果我输入demo.example.com/some-folder就会显示该文件夹的内容)

所以我尝试了这个

HTTP 会议exampledemo.com.conf

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ServerName demo.example.com
ServerAlias www.demo.example.com
ErrorLog logs/demo.example.com-error_log
CustomLog logs/demo.example.com-access_log common
Redirect permanent / https://demo.example.com
RewriteEngine on
RewriteCond %{SERVER_NAME} =demo.example.com [OR]
RewriteCond %{SERVER_NAME} =www.demo.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

HTTPS conf 是基本conf 生成,certbot没有变化

但是当我添加站点并重新启动 apache 时,我找不到页面我在服务器上将其作为后备配置,因此此配置可能与我的配置不匹配

HTTP 会议000-default.conf

<VirtualHost *:80>
DocumentRoot /var/www/html/not-found
</VirtualHost>

谁能告诉我我做错了什么?

答案1

您的配置似乎与000-default.conf提供该"not found"页面的默认配置相冲突。

  1. 禁用默认配置:
sudo a2dissite 000-default.conf
  1. 检查 DNS 设置:
nslookup demo.example.com
  1. 检查 Apache 配置:

确保您的新配置文件exampledemo.com.conf位于正确的目录中/etc/apache2/sites-available/并且具有正确的权限。

您还可以检查 Apache 错误日志以查找与配置相关的任何错误。错误日志通常位于/var/log/apache2/error.log

然后重新启动Apache:

sudo systemctl restart apache2

相关内容