htaccess重写了太多重定向codeigniter - 非SSL到SSL除了子域

时间:2017-04-12 14:09:47

标签: .htaccess codeigniter

每个网站我应该有一个htaccess但是我有一个4个网站--2个英国网站和2个AU网站。这是一个Codeigniter构建。有两个站点在dev.mydomain.extension上进行分段,2个站点是实时站点。

我想做什么:

  1. http://mydomain.co.uk重定向到 https://WWW.mydomain.co.uk
  2. 重定向任何内容 http://WWW.mydomain.co.ukhttps://WWW.mydomain.co.uk
  3. 不要 完全改变http://dev.mydomain.co.uk
  4. 我正在尝试以下但我总是得到'太多的重定向'错误,我认为它根本不会处理www的事情。我有点深入了解。

    RewriteEngine on
    RewriteBase /
    ##setting 2 exceptions
    RewriteCond %{HTTP_HOST} !=dev.mydomain.co.uk
    RewriteCond %{HTTP_HOST} !=dev.mydomain.com.au
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
    ##Codeigniter rules
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
    

1 个答案:

答案 0 :(得分:1)

这样做:

RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{ENV:HTTPS} !on
RewriteCond %{HTTP_HOST} ^(?!dev\.)(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L,NE]

##Codeigniter rules
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

请记住在测试此更改之前清除浏览器缓存。