使用.htaccess

时间:2017-09-13 10:16:57

标签: .htaccess redirect mod-rewrite

我尝试将我的网站网址的所有版本重定向到https://www。通过使用.htaccess文件但遇到问题。

  • ranglerz.com
  • www.ranglerz.com
  • http://ranglerz.com
  • http://www.ranglerz.com
  • https://www.ranglerz.com
  • https://ranglerz.com

以上所有版本的网址都有效,但最后一个网址没有使用www重定向,这是我在.htaccess文件中使用的代码

RewriteCond %{HTTPS} off 
RewriteCond %{HTTPS_HOST} !^www.ranglerz.com$ [NC]
RewriteRule ^(.*)$ https://www.ranglerz.com/$1 [L,R=301]

2 个答案:

答案 0 :(得分:1)

您需要在条件之间使用[OR]条款为2个条件中的任何一个触发规则:

RewriteEngine On

RewriteCond %{HTTPS} !on [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.ranglerz.com%{REQUEST_URI} [L,R=301]

答案 1 :(得分:0)

DirectoryIndex index.php
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R]

上面的代码可以很好地完成您想要的操作,只需将其放在主目录.htaccess文件中即可。

此外,如果您还需要强制每个site.com都是www.site.come,只需替换上面代码中的流线:

RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R]

用这个:

RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R]

我已经在Apache - how to make http requests into https only?

之前回答了这个问题