我正在一个由无法联系的开发人员构建的网站上工作。该网站是使用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文件的顶部,以为这可以解决问题。但是这样做也会导致重定向循环。
谢谢