删除index.php,强制ssl,并将www重定向到.htaccess中的非www

时间:2014-12-14 20:07:26

标签: .htaccess mod-rewrite ssl

我很欣赏这些问题已经完成了死亡,但我似乎无法找到我需要的确切答案,所有最接近我的重定向非www到www,但我需要它反过来。

所以,我想做的是强制www始终为非www,从url重写index.php,并强制网站始终为SSL。

我有以下内容除了强制SSL之外什么都做了,我尝试了很多不同的东西,但总是得到无限循环:

# Rewrite www to non www

<IfModule mod_rewrite.c>
  RewriteCond %{HTTPS} !=on
  RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
  RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
</IfModule>

Rewrite the index.php out

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !^/(favicon\.ico|apple-touch-icon.*\.png)$ [NC]
    RewriteRule (.+) index.php?p=$1 [QSA,L]
</IfModule>

1 个答案:

答案 0 :(得分:0)

尝试更改此内容:

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

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