如何将所有请求重定向到laravel 5

时间:2016-06-26 16:13:33

标签: .htaccess laravel

我有一个经典的Larevel 5项目结构,我需要将所有请求重定向到public/

我在经典托管环境中,因此public/是我的文档根目录的子文件夹。

我会想象它可以通过.htaccess完成,但我仍然需要弄清楚如何。有人可以帮忙吗?

由于

6 个答案:

答案 0 :(得分:33)

有两种解决方案:

<强> 1。将.htaccess与mod_rewrite一起使用

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

<强> 2。您可以添加包含以下代码的index.php文件,并将其放在根Laravel文件夹(public_html文件夹)下。

<?php
header('Location: public/');

答案 1 :(得分:5)

这是another answer的摘录,也可以为您提供帮助。

-

  • 修改您的public_html/.htaccess,将所有请求重定向到public子文件夹。

    # public_html/.htaccess
    
    <IfModule mod_rewrite.c>
        <IfModule mod_negotiation.c>
            Options -MultiViews
        </IfModule>
    
        RewriteEngine On
    
        # Redirect All Requests To The Subfolder
        RewriteRule ^ /public
    
    </IfModule>
    
  • 确保您拥有正确的public_html/public/.htaccessGitHub)。

    # public_html/public/.htaccess
    
    <IfModule mod_rewrite.c>
        <IfModule mod_negotiation.c>
            Options -MultiViews
        </IfModule>
    
        RewriteEngine On
    
        # Redirect Trailing Slashes If Not A Folder...
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)/$ /$1 [L,R=301]
    
        # Handle Front Controller...
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^ index.php [L]
    
        # Handle Authorization Header
        RewriteCond %{HTTP:Authorization}
        RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    </IfModule>
    

答案 2 :(得分:1)

您无需更改Laravel的默认 public / .htaccess 文件中的任何内容。

只需在与您的 public 文件夹相同的级别上创建一个新的 .htaccess ,然后向其中添加以下内容:

'14/01/2019 10:33:59 AM'

就这么简单!

答案 3 :(得分:1)

如果您使用 apache,请使用以下行将 .htaccess 文件添加到您的根目录:

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

并确保您的 apache 重定向和重写模块工作正常。
您可以使用 vhost 将所有请求重定向到您的公共目录,并将 public 设置为项目的根目录。

答案 4 :(得分:0)

理想情况是将/home/user/public作为/home/user/laravel/public的符号链接。

答案 5 :(得分:0)

如果您使用cPanel,则:

1。转到文件夹: / var / cpanel / userdata / my_domain

2。编辑两个域: my.domain和my.domain_SSL

添加到文档根部分 / public

documentroot:/ home / 用户 / public_html / public

3。重建Apache配置: / scripts / rebuildhttpdconf &&服务httpd重新启动