我已经尝试了10种不同的配置,这些都在这里找到了答案,但我最终得到的只是一个重定向循环。
我最近的尝试如下:
RewriteCond %{HTTP_HOST} ^www.test.com
RewriteRule (.*) http://test.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} !^(.*?)\.test.com$
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
前两行我消除了www
然后检查没有子域名,如果已经设置了https,那么我将重定向。
最后,我要检查现有文件等,并通过index.php发送所有流量
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php?%{QUERY_STRING} [L]
有人能发现明显的错误吗?
答案 0 :(得分:0)
此规则将忽略http->https
重定向的子域:
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.test\.com$
RewriteRule ^ https://test.com%{REQUEST_URI} [NE,R=301,L]
PS:这也将取代您的第一个www删除规则。