首页 文章

htaccess mod重写非www到www和http到https IF站点不能直接通过IP地址访问

提问于
浏览
0

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

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

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

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

有关如何使用htaccess规则进行设置的任何建议?

谢谢

1 回答

  • 0

    试试这个...

    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]
    

相关问题