HTTP到HTTPS重定向而不显示index.php

时间:2015-08-14 03:00:08

标签: .htaccess redirect

我将我的网站设为HTTPS“https://website.com”,因此我在通过HTTP访问网站时添加了一个htaccess文件以重定向到https。

这是我从SO获得的代码。

<%= select_tag '<some_id>', options_from_collection_for_select(@tenants, :id, :tenant_text_value, current_tenant.try(:id)) %>

<script>
    $(function(){
      $('#team_id').bind('change', function () {
         var url = $(this).val()
          if (url) {
              window.location.href(url);
          }
          return false;
      });
    });
</script>

当我访问http://website.com时,它会重定向到https://www.website.com这是正确的。但是当我访问http://www.website.com时,它会重定向到https://www.website.com/index.php

网址中有RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [QSA,L] RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} =http RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 我不喜欢。对此有什么可行的解决方案吗?

1 个答案:

答案 0 :(得分:1)

让您的代码如下:

RewriteEngine On

RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

您不需要多个RewriteEngine On行并在内部重写规则之前保留重定向规则,如图所示。

确保在测试前清除浏览器缓存。