我需要laravel网站才能在https中打开而不在URL中公开,该怎么办?

时间:2019-02-06 04:13:42

标签: php laravel .htaccess environment-variables

我已经在Laravel上创建了网站,因此该网站在www.domain.com/public/下处于打开状态。因此,我在这里搜索了我的答案,发现这对我来说很有效,在我添加了此代码后,该页面在www.domain.com上打开,而没有将公共地址添加到url:

htaccess:

Options -Indexes
<IfModule mod_rewrite.c>
    RewriteEngine on        
    RewriteCond %{REQUEST_URI} !^public
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

但是现在我安装了SSL,我想强迫它在https链接上打开一个页面,但是我不知道为什么它不会。我将.evn文件中的APP URL设置为https链接,并将此代码添加到htacces文件中:

Options -Indexes
<IfModule mod_rewrite.c>
    RewriteEngine on        
    RewriteCond %{REQUEST_URI} !^public
    RewriteRule ^(.*)$ https://domain/$1 [L]
</IfModule>

当我尝试删除公共并将代码设置为:

时,它现在每次都在https中打开网页,但在url中添加其他公共内容。

Options -Indexes
<IfModule mod_rewrite.c>
    RewriteEngine on        
    RewriteCond %{REQUEST_URI} !^public
    RewriteRule ^(.*)$ https://domain/$1 [L]
</IfModule>

它根本不会打开我的网站。请,如果有人知道解决方法,我将非常感谢,最良好的祝愿!

3 个答案:

答案 0 :(得分:2)

这个怎么样?

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L]

答案 1 :(得分:1)

RewriteEngine开启 RewriteCond%{HTTPS}已关闭 RewriteRule ^(。*)$ https://% {HTTP_HOST}%{REQUEST_URI} [L,R = 301]

RewriteCond%{REQUEST_URI}!^ public RewriteRule ^(。*)$ public / $ 1 [L]

答案 2 :(得分:-1)

RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
RewriteCond %{REQUEST_URI} !^public 
RewriteRule ^(.*)$ public/$1 [L]