首页 > 解决方案 > 修改 .htaccess SSL 重定向以处理 www 和无子域的最佳方法

问题描述

有什么方法可以修改这个工作,.htaccess使用一些聪明的正则表达式来处理多个子域的重定向。

理想情况下,我希望能够在没有前面joshmoto.wtf的情况下使用我的域。www

是否可以使当前.htaccess功能如下所示?

如果您访问...

  1. http://www.joshmoto.wtf它重定向到https://www.joshmoto.wtf
  2. http://joshmoto.wtf它重定向到https://joshmoto.wtf

请参阅下面的当前.htaccess始终将http://joshmoto.wtf重定向到https://www.joshmoto.wtf

<IfModule mod_rewrite.c>
    # Force SSL access
    RewriteEngine On
    RewriteBase /

    RewriteCond %{HTTP_HOST} !^www\.joshmoto\.wtf [NC]
    RewriteRule ^/?(.*) https://www.joshmoto.wtf/$1 [L,R,NE]
</IfModule>

任何专家的正则表达式帮助将不胜感激。

非常感谢

标签: .htaccess

解决方案


试试这样:

RewriteEngine On
RewriteBase /
# Redirect HTTP with www to HTTPS without www
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www\.joshmoto\.wtf$ [NC]
RewriteRule .* https://joshmoto.wtf%{REQUEST_URI} [R=301,L]
# Redirect HTTP without www to HTTPS without www
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# Redirect HTTPS with www to HTTPS without www
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.joshmoto\.wtf$ [NC]
RewriteRule .* https://joshmoto.wtf%{REQUEST_URI} [R=301,L]

推荐阅读