修改.htaccess SSL重定向以处理www而无子域的最佳方法

修改.htaccess SSL重定向以处理www而无子域的最佳方法,.htaccess,.htaccess,有没有什么方法可以修改这个工作.htaccess,使用一些聪明的正则表达式来处理多个子域的重定向 理想情况下,我希望能够使用我的joshmoto.wtf域,而不需要前面的www 是否可以使当前的.htaccess功能如下 如果你访问 它重定向到 它重定向到 请参见下面的current.htaccess,它始终重定向到 #强制SSL访问 重新启动发动机 重写基/ 重写cond%{HTTP_HOST}^www\.joshmoto\.wtf[NC] 重写规则^/?(*))https://www.j

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

理想情况下,我希望能够使用我的
joshmoto.wtf
域,而不需要前面的
www

是否可以使当前的
.htaccess
功能如下

如果你访问

  • 它重定向到
  • 它重定向到

  • 请参见下面的current
    .htaccess
    ,它始终重定向到

    
    #强制SSL访问
    重新启动发动机
    重写基/
    重写cond%{HTTP_HOST}^www\.joshmoto\.wtf[NC]
    重写规则^/?(*))https://www.joshmoto.wtf/$1[L,R,NE]
    
    非常感谢任何专家regex的帮助

    非常感谢

    像这样尝试一下:

    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]
    

    有几种方法可以做到这一点。您可以替换www,也可以捕获两个组并连接它们。我想对此给出一个答案,但我不熟悉.htaccess,所以我不确定这涉及到什么样的编程环境。你只是在寻找一种从URL中删除www的模式吗?谢谢@wp78de,我添加了它,它很有效。我在问题中要求它如何发挥作用,但说句公道话,也许我更赞成你的版本的工作方式,因为它总是在前面不强制www:-)我认为这是一个正则表达式问题,因为它可以在一个单独的块中使用正则表达式来完成,而不是像你这样的三个块。@joshmoto Cool。说到重定向,我更倾向于安全而不是抱歉。很高兴听到你喜欢它。
    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]