如何解决重定向到该网站的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 answer:Is Checking For mod_write Really Necessary?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。