微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

重定向到该网站的https版本?

如何解决重定向到该网站的https版本?

如何保留index.PHP文件的逻辑,但如何从http重定向到网站的https版本?

我的.htaccess

AddDefaultCharset utf8

ErrorDocument 404 /404.PHP

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteCond %{SCRIPT_FILENAME} !-f

    RewriteRule ^(.*)$ ./index.PHP?route=$1 [QSA,L]
</IfModule>

解决方法

您的HTTP到HTTPS重定向仅需先进行,即在现有内部重写之前。

例如:

<IfModule mod_rewrite.c>
    RewriteEngine On

    # HTTP to HTTPS redirect
    RewriteCond %{HTTPS} off
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

    # Internal rewrite
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteRule (.*) index.php?route=$1 [QSA,L]
</IfModule>

我删除了./ 字符串上的RewriteRule前缀。那不是必须的 (在这种情况下并没有什么意义),并且将由操作系统解决。

此外,考虑删除<IfModule>包装器-此处不需要这样做,除非将代码移植到可能未启用mod_rewrite的多个服务器上,并且期望您的站点在没有它的情况下也可以工作(尽管这似乎不太可能)。有关此问题的更多信息,请参见网站管理员堆栈上的以下问题的my answerIs Checking For mod_write Really Necessary?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。