我的应用程序结构如下:
root
--.htaccess
--public
我从/ root托管我的应用程序。 .htaccess是:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
</IfModule>
工作正常。但是现在我需要将我的网站重定向到https://www.example.com(使用https和www)。
如果我添加了重定向规则
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
该网站进入重定向循环。
完整的.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
</IfModule>
如果我切换规则的位置,它将永远不会重定向。
请帮助我将这两个规则结合在一起。
注意:公用文件夹还具有.htaccess
文件。
也许我应该在这里制定一些规则,但是我试图这样做已经很长时间了,我没有想法。