.htaccess从子目录提供服务并重定向到https

时间:2019-04-11 09:00:49

标签: apache .htaccess redirect mod-rewrite

我的应用程序结构如下:

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文件。

也许我应该在这里制定一些规则,但是我试图这样做已经很长时间了,我没有想法。

0 个答案:

没有答案