.htaccess规则,用于SSL和公用文件夹重定向

时间:2019-01-30 16:42:19

标签: laravel apache .htaccess

我想编辑我的.htaccess文件,以便所有请求都将被加密(我的SSL证书处于活动状态)。我正在尝试运行Laravel应用,该应用在公共文件夹中具有索引文件,并且我想让用户访问我的页面时不使用URL中的/ public /部分。

到目前为止,我设法做到了:

这部分让我访问没有/ public /部分的页面。

RewriteCond %{HTTP_HOST} ^domain.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^domain.com$
RewriteCond %{REQUEST_URI} !public/
RewriteRule (.*) /public/$1 [L]

这部分将所有数据重定向到HTTPS:

RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://domain.club/public_html/1 [R,L]

问题是,如何将这两部分合并在一起?它们是分开工作的,但是如果我将其放到.htaccess文件中,则不会。

.htaccess文件位于根文件夹中的public_html中。 Laravel文件夹(包括public)位于此文件夹中。

1 个答案:

答案 0 :(得分:0)

尝试

.htaccess

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes...
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>