.htaccess:将CakePHP规则与HTTPS重定向相结合

时间:2016-05-11 12:59:12

标签: .htaccess https cakephp-3.0

我目前使用CakePHP 3的.htaccess是:

./

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]    
</IfModule>

./根目录

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

我的主机提供商建议为自动https重定向设置以下.htaccess:

RewriteEngine On
RewriteCond %{SERVER_PORT} !=443
RewriteRule ^(.*)$ https://ihredomain.de/$1 [R=301,L]

如何在不破坏Cake路由的情况下将所有这些组合成一个有效的htaccess?

我有点害怕试错法,因为它是一个生产系统。

2 个答案:

答案 0 :(得分:1)

在根文件夹中,我将.htaccess文件更改为

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase    /
    RewriteCond    %{SERVER_PORT} 80
    RewriteRule    ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]
    RewriteRule    ^(\.well-known/.*)$ $1 [L]
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
</IfModule>

这对我有用,而其他所有解决方案都没有。

答案 1 :(得分:0)

您可以在/.htaccess

中使用此功能
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://ihredomain.de/$1 [R=301,L]
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]    
</IfModule>