透明地将http://my-domain-name.com重定向到https://my-domain-name.com/


Transparently redirect http://my-domain-name.com to https://my-domain-name.com/web

我有一个网站与我的前端控制器在一个子目录。然后我想透明地重定向根文件夹的网站到子目录。此外,我已经启用了SSL,并希望为站点强制使用它。

通过在.htaccess:

中这样做,我成功地将根文件夹透明地重定向到子目录:
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ web/$1 [QSA,L]
</IfModule>

所以我决定添加https到RewriteRule这样:RewriteRule ^(.*)$ https://my-domain-name.com/web/$1 [QSA,L]。但我没有得到我想要的。事实上,我得到https强制,但透明根文件夹到子目录重定向不再工作了。我得到了我的地址栏:https://my-domain-name.com/web虽然我的愿望是https://my-domain-name.com

您添加的规则被隐式地视为重定向。只要把它放在web/重写的规则之前。这允许您先更改协议,然后在请求返回https后继续进行内部重写。

编辑:更多关于HTTPS重定向的细节:https://wiki.apache.org/httpd/RewriteHTTPToHTTPS