2017-10-15 56 views
0

我试图在项目的子文件夹(laravel-project)中设置laravel。 我得到莫名其妙的主页工作,doint这在配置文件中: rewrite "/project/home.php" /laravel-project/public/index.php$1;Laravel在nginx服务器上的子文件夹中

但我想不出如何让路由工作。 我希望任何包含laravel-project的请求都会被重定向到laravel-project/public/index.php,这样laravel可以找出哪个控制器和哪个方法被调用。 我这样做:

location /laravel-project { 
    root /home/www/virtual/mysite/laravel-project/public; 
    try_files $uri $uri/ /index.php?$query_string; 
} 

然而,当我尝试导航到mysite/laravel-projectmysite/laravel-project/contacts应用嗟public/index.php文件中的laravel项目文件夹中。

希望给出的信息就够了。请让我知道是否需要更多信息,并感谢您的帮助!

+0

看看这个。 https://laravel-news.com/subfolder-install。基本上,你要确保所有的非公共文件夹和文件在公共路径中都不是**。这将确保用户无法浏览敏感文件,尤其是您的'.env'。然后,您必须更改引导应用的位置。文章解释了这一切。 – tptcat

+0

谢谢,但我认为我处于更早的阶段。我无法让Laravel在主页旁边工作,(硬重定向),所以我仍然坚持在那里。 – mikey

回答

0
# megadealer 
    location ^~ /megadealer { 
     alias /var/www/choppies/megadealer/public; 
     try_files $uri $uri/ @megadealer; 

     location ~ \.php { 
      include snippets/fastcgi-php.conf; 
      fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
      fastcgi_param SCRIPT_FILENAME /var/www/choppies/megadealer/public/index.php; 
     } 
    } 

    location @megadealer { 
     rewrite /megadealer/(.*)$ /megadealer/index.php?/$1 last; 
    } 
    # end megadealer 
相关问题