.htaccess laravel删除公共并重定向到https

时间:2019-02-04 05:50:54

标签: laravel .htaccess

我正在使用共享主机。 所以我需要使用.htaccess公开,我希望不公开。

我可以做到这一点,但是我想从http重定向到https。

您能帮我做到这一点吗?

RewriteEngine on
RewriteRule ^/?$ /public/ [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*) /public/$1 [L]

我想从http重定向到https。

谢谢

4 个答案:

答案 0 :(得分:0)

您应该通过在laravel项目的公共文件夹和服务器中的public_html文件夹之间建立符号链接来实现。

例如:

ln -s ~/nameOfProject/public public_html

您将需要进行SSH访问。

答案 1 :(得分:0)

您只需在.htaccess中添加新的重写规则即可做到这一点

RewriteRule ^(.*)$ https://yourdomain.com$1 [R=301,L]

答案 2 :(得分:0)

在创建虚拟主机时,将目录指向/ path_to_root / public。这样,您将使用public运行站点,URL中将不会显示“ public”文件夹。

重定向将按照正常的htaccess规则进行。

答案 3 :(得分:0)

在确切的问题上进行了很多努力之后(我尝试了很多建议,但是它们没有强制使用https或导致了无限重定向循环),我整理了以下解决方案:

将代码放在laravel根目录的.htacces中:

RewriteEngine On

# enforce https
RewriteCond %{ENV:HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=302]

# use public directory as root, but don't show in url
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ /public/$1 [L,QSA]