如何解决htaccess 删除 www 重定向到 ssl 但网址错误
我用 php 创建了一个 mvc 框架。我唯一工作的主文件是 index.php。
通常我从 http 重定向到 https。我也删除了 www 域,但是当我输入 www 时,如果我的 URL 是例如
domain.com/admin/products/edit/1,
htaccess 做到这一点。
domain.com/index.php/products/edit/1
我该如何解决这个问题 谢谢
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^ index.php [L]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
解决方法
你应该有这样的规则,始终只将 https 重定向规则放在首位。请在测试 URL 之前清除浏览器缓存(其余规则来自 OP 的尝试规则 + 我也在这里更改了匹配主机名的正则表达式)。
RewriteEngine ON
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
RewriteCond %{HTTP_HOST} ^(?:www\.)(example\.com) [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE]
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^ index.php [L]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。