使用通配符支持将非https和非www重定向到https:// www

时间:2014-11-27 14:58:40

标签: .htaccess redirect

我可以实现以下目标......

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

1 个答案:

答案 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缓存。