HTTP 到 HTTPS Apache 重写不起作用

Posted

技术标签:

【中文标题】HTTP 到 HTTPS Apache 重写不起作用【英文标题】:HTTP to HTTPS Apache Rewrite not working 【发布时间】:2012-06-07 03:33:49 【问题描述】:

我有一个在 Ubuntu 上运行的 apache2 服务器,我正在玩弄它来提高我的系统管理员技能。我一直在尝试在整个站点中使用 HTTPS 设置网络服务器。目前,如果我去https://mysite.com 它工作得很好。我已经尝试了一些不同的重定向规则,以使到该站点的所有连接都强制使用 HTTPS,但我没有运气。谁能在这里指出我的错误?

httpd.conf:

NameVirtualHost *:443

<VirtualHost *:443>
        ServerName mysite.com
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/
        SSLEngine on
        SSLOptions +FakeBasicAuth -StrictRequire +ExportCertData
        SSLCertificateKeyFile /etc/ssl/crt/myserver.key
        SSLCertificateFile /etc/ssl/crt/mysite_com.crt
        SSLCertificateChainFile /etc/ssl/crt/mysite.ca-bundle
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride AuthConfig Options FileInfo Limit
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>

<IfModule !mod_rewrite.c>
    LoadModule rewrite_module modules/mod_rewrite.so
</IfModule>


RewriteEngine On
RewriteCond %HTTPS !=on
RewriteRule ^/(.*) https://%SERVER_NAME/$1 [R,L]

ports.conf:

NameVirtualHost *:80
Listen 80

<IfModule mod_ssl.c>
    # If you add NameVirtualHost *:443 here, you will also have to change
    # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
    # to <VirtualHost *:443>
    # Server Name Indication for SSL named virtual hosts is currently not
    # supported by MSIE on Windows XP.
    Listen 443
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>

非常感谢任何帮助!

【问题讨论】:

【参考方案1】:

终于弄明白了...不是我的重写规则不起作用,而是与我使用的代理(cloudflare)发生冲突。对于那些处于类似情况的人,您必须在 cloudflare 仪表板中创建一个“页面规则”,否则它将忽略您的 Apache 规则。

【讨论】:

以上是关于HTTP 到 HTTPS Apache 重写不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Apache重写以删除不起作用的特定路径

从 Apache 2,2 迁移到 Apache 2.4 后,URL 重写不起作用

.htaccess url rewrite在GoDaddy Shared Server上不起作用,返回了Apache 2.4.3 - 404错误

xampp apache重写不起作用

从 http 到 https 的重定向不起作用

重定向在 Apache 中不起作用,HTTP 到 HTTPS