Apache Web 服务器修改配置或重定向无效

Apache Web 服务器修改配置或重定向无效

我是 Apache 网络服务器的新手,所以我可能只是做了一些明显错误的事情。

我通过 Debian 包管理器安装了“OwnCloud”,默认情况下还会安装 Apache 网络服务器。基本安装工作正常,我可以正常使用 OwnCloud。

我现在想启用 https 连接并将所有 http 请求重定向到 https,但是我无法使重定向工作。在尝试理解和解决问题时,似乎 Apache 忽略了对配置文件的更改,例如更改默认 VirtualHost 的 DocumentRoot 不起作用。

由于它是 Debian 安装,我了解配置文件的位置与标准 Apache 安装的位置略有不同。

sites-available目录中我有以下内容:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/test
    #       ServerName <removed_for_privacy>
    #       Redirect permanent / https://<removed_for_privacy>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
   Redirect / https://<removed_for_privacy>/owncloud
</VirtualHost>
<VirtualHost <removed_for_privacy>:80>
    ServerName <removed_for_privacy>
    Redirect permanent /owncloud https://<removed_for_privacy>/owncloud
    ErrorLog ${APACHE_LOG_DIR}/error.log
</VirtualHost>

在上面我将服务器名称替换为<removed_for_privacy>

我还在owncloud-ssl.conf同一个目录中创建了一个特定的文件,试图让它正常工作:

<IfModule mod_ssl.c>
<VirtualHost <removed_for_privacy>:443>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    #   SSL Engine Switch:
    #   Enable/Disable SSL for this virtual host.
    SSLEngine on

    SSLCertificateFile  /etc/ssl/certs/<removed_for_privacy>.pem
    SSLCertificateKeyFile /etc/ssl/certs/<removed_for_privacy>.key

</VirtualHost>

如果我手动输入,https 可以正常工作,但我想将 http 请求重定向到 https,但重定向从未发生。

另外,出于实验,我尝试将 DocumentRoot 更改为标准的子目录/var/www,但重新启动 Apache 后,它仍然查看/var/www其中的子目录。

任何帮助均感激不尽。

更新

我尝试删除 000-default.conf,奇怪的是 apache 继续响应 http 请求!删除这个文件后它肯定会报错/崩溃吗?我不知道它是如何配置的...

答案1

如果你使用 mod_rewrite 选项,则将以下配置添加到.htaccess文件:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

确保 httpd.conf(mod_rewrite 支持)中包含以下内容:

LoadModule rewrite_module modules/mod_rewrite.so

相关内容