在.htaccess中,检查网站是否使用https

时间:2018-10-08 11:06:24

标签: apache .htaccess

我正在一个由无法联系的开发人员构建的网站上工作。该网站是使用PHP定制构建的。它有一个.htaccess文件,其中包含超过2000行代码。

我试图实现的结果是所有http URL请求都应重定向到其https版本。

.htaccess文件中(第245行)上有以下代码块:

    # Redirect from the `http://` to the `https://` version of the URL.
    # https://wiki.apache.org/httpd/RewriteHTTPToHTTPS
    # <IfModule mod_rewrite.c>
    #   RewriteEngine On
    #   RewriteCond %{HTTPS} !=on
    #   RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
    # </IfModule>

但是,由于某些原因取消注释该区块的最后5行会导致无限循环,从而使网站崩溃。

因此,有什么方法可以在网站顶部添加一些代码来测试请求的URL是http还是https,然后根据结果执行某些操作?

如果是http,则应重定向到https,而不要运行.htaccess文件中的任何其他代码。

如果是https,则它可以继续运行.htaccess文件中的其余代码。

我尝试将上面显示的代码块移动到.htaccess文件的顶部,以为这可以解决问题。但是这样做也会导致重定向循环。

谢谢

0 个答案:

没有答案