在.htaccess上配置HTTPS重定向的重定向太多

在.htaccess上配置HTTPS重定向的重定向太多,.htaccess,mod-rewrite,https,.htaccess,Mod Rewrite,Https,我有一个网站与,并工作良好 现在我想知道,无论您键入哪一个,它都会重定向到。我在.htaccess中使用了下面的代码(并尝试了更多),但在浏览器中执行重定向后,页面无法加载,导致错误“重定向过多”。我当然试过删除缓存 RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.example.com/$1 [R,L] 我有类似的问题,下面的代码为我解决问题 RewriteEngine on

我有一个网站与,并工作良好

现在我想知道,无论您键入哪一个,它都会重定向到。我在.htaccess中使用了下面的代码(并尝试了更多),但在浏览器中执行重定向后,页面无法加载,导致错误“重定向过多”。我当然试过删除缓存

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

我有类似的问题,下面的代码为我解决问题

 RewriteEngine on
 RewriteCond %{HTTPS} off
 RewriteCond %{HTTP_HOST} ^[DOMAIN HERE]$
 RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

注意:替换
[DOMAIN HERE]
应替换为您的域
我有类似的问题,下面的代码为我解决问题

 RewriteEngine on
 RewriteCond %{HTTPS} off
 RewriteCond %{HTTP_HOST} ^[DOMAIN HERE]$
 RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

注意:Replace
[DOMAIN HERE]
应替换为you DOMAIN

因为我的主机是Heroku,它有特殊的规则,任何其他解决方案都不适合我。 .htaccess中的以下代码工作得非常出色:

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

因为我的主机是Heroku,它有特殊的规则,所以其他任何解决方案都不适合我。 .htaccess中的以下代码工作得非常出色:

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

您使用的是cloudflare还是类似的东西?我使用的是HerokuHeroku,它在您的应用程序前面有自己的路由层,所以您不会总是知道它是否通过SSL提供。这个问题有一些特定于Heroku@JonLin的答案,这有点误导。您将始终知道它是否通过SSL传入。重要的不是端口号。
X-Forwarded-Proto
告诉您,它应该始终存在。您使用的是cloudflare还是类似的东西?我使用的是Herokuku,它在您的应用程序前面有自己的路由层,所以您不知道它是否通过SSL进入。这个问题有一些特定于Heroku@JonLin的答案,这有点误导。您将始终知道它是否通过SSL传入。重要的不是端口号。
X-Forwarded-Proto
告诉您,它应该始终存在。这是唯一一个对我的服务器起作用的重写条件组合。谢谢这是对我的服务器有效的重写条件的唯一组合。谢谢