【问题标题】:htaccess mod rewrite non www to www and http to https IF site not accessed via IP address directlyhtaccess mod 将非 www 重写为 www 和 http 到 https IF 站点不直接通过 IP 地址访问
【发布时间】:2015-02-16 18:29:04
【问题描述】:

我们有一个网站,目前可以通过 IP 地址和域名访问,具体取决于用户。

如果用户通过域名访问网站,我们需要将其 301 重定向到正确的版本(如果访问方式不正确),例如: 301重定向到https://www.example.com(需要同时是www和https)

所以如果他们访问一个页面:https://example.com/page,它将 301 重定向到 https://www.example.com/page 如果他们访问页面(没有 https)http://wwww.example.com/page,它将 301 重定向到页面的 https 版本:https://www.example.com/page 最后,如果他们没有 htts 并且没有 www,它将重定向到 https 和 www 版本。

但是,如果他们直接通过 IP 地址访问站点/页面(例如:http://131.14.12.145/ - 但这在技术上可能会改变),则不会执行上述任何重定向。

对如何使用 htaccess 规则进行设置有什么建议吗?

谢谢

【问题讨论】:

    标签: apache .htaccess mod-rewrite redirect


    【解决方案1】:

    试试这个...

    Options +FollowSymLinks
    RewriteEngine On
    # (1) Redirect http to https
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    # (2) Redirect non-www to www
    RewriteCond %{HTTP_HOST} !^www\.
    RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    # (3) Direct access through IP
    # CHANGE 11.11.11.11 TO YOUR ACTUAL IP
    RewriteCond %{HTTP_HOST} ^11\.11\.11\.11$
    RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    

    【讨论】:

      猜你喜欢
      • 2014-12-16
      • 2017-12-04
      • 2015-01-10
      • 1970-01-01
      • 1970-01-01
      • 2021-12-24
      • 1970-01-01
      • 2013-04-22
      • 1970-01-01
      相关资源
      最近更新 更多