在CakePHP .htaccess中强制使用SSL + WWW

Bob*_*Bob 4 regex .htaccess cakephp

我知道经常讨论和解决"如何强制使用HTTPS + WWW"这个主题,一般来说它对我有用.

但是,由于我现在从CakePHP获得了一个特定的预定义.htaccess,我不知道如何包含它.

CakePHP的.htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
Run Code Online (Sandbox Code Playgroud)

如果我将HTTPS/WWW强制的正常代码放在该代码的前面或后面,它就无法正常工作,因为所有请求都设置为根目录而不是例如/ contact.

通常我正在使用:

RewriteCond %{HTTPS} !on [OR]
RewriteCond %{HTTP_HOST} !^www\.mydomain\.com$ [NC]
RewriteRule ^ https://www.mydomain.com%{REQUEST_URI} [R=301]
Run Code Online (Sandbox Code Playgroud)

但你不能只包括上面......

有人可以帮助我,包括 HTTPS/WWW强制在上面.htaccess?

小智 5

通用方式是:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTPS} !on
    RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f    
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

无需硬编码域名.从http切换到https时,请求也不会重定向到root