我可以实现以下目标......
https://domain.com -> https://www.domain.com
http://www.domain.com -> https://www.domain.com
http://domain.com -> https://www.domain.com
一切都很好......但另外我想让外卡工作,例如
https://domain.com/randomblabla.html -> https://www.domain.com/randomblabla.html
其中 randomblabla.html 不存在...它只显示index.php的内容...在我设置https重定向之前它工作正常..但现在它重定向到{{1 }}
https://www.domain.com/index.php
答案 0 :(得分:0)
问题是前端控制器的多余存在,如规则在顶部。试试这段代码:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.domain.com%{REQUEST_URI} [R=301,L,NE]
# Remove Trailing Slashes...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} \s(.+?)/+[?\s]
RewriteRule ^(.+?)/$ /$1 [R=301,L,NE]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
确保在新浏览器中进行测试,以避免旧的301缓存。