2015-12-31 76 views
5

當我嘗試使用laravel PHP框架時,我嘗試將它放在名爲/home/usr/proj/laravel的目錄中,但是因爲我們知道laravel的公共html已在/home/usr/proj/laravel/public,因此我的問題是如何使nginx的設置,當我通過mysite.com/laravel/mysite.com/laravel訪問,我們實際上重定向到位置laravel/public/index.phpnginx與網站中的一個subdir不匹配url的末端

而且,似乎有是由laravel的官方建議nignx的規則,使URL看起來相當

location/{ 
     try_files $uri $uri/ /index.php?$query_string; 
} 

如何才能在我的情況下使用?


UPDATE

看來下面的代碼對我的作品(但給我的錯誤中RouteCollection.php線145 NotFoundHttpException:,也許是我的路由器設置造成的)

location /laravel{ 
    root /home/usr/proj/laravel/public; 
    index index.php index.html; 
    try_files $uri $uri/ /laravel/public/index.php?$query_string; 
    } 
+0

你應該做try_files $ uri $ uri//index.php?$query_string; –

+0

它似乎也不起作用。 –

+0

如果你看到一個來自RouteCollection的錯誤 - 聽起來你已經自己修復了這個問題:)剩下的就在routes.php –

回答

0

關於你的更新,我認爲你應該保留原來的try_files語法:

try_files $uri $uri/ /index.php?$query_string; 

由於位置設置爲/laravel而且根位於公用文件夾中。目前寫入的方式最終在磁盤中尋找文件/home/usr/proj/laravel/public/public/index.php

您還應該檢查以配置您的應用程序URL,以便它包含URL的/location部分。我不太清楚Laravel 5是如何配置的,因爲我的經驗是Laravel 4.

+0

看來我們應該使用別名而不是root –