我正在使用共享主机。 所以我需要使用.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。
谢谢
答案 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]