2016-11-22 277 views
0

我有一個網站,有laravel設置到http://www.example.com/lara/ 下運行因此,大多數Laravel網頁有http://www.example.com/lara/page/23類型或http://www.example.com/lara/category/23等的網址Nginx的URL重寫

Nginx的是底層的服務器,它具有以下配置來處理這些請求:

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

一切正常。

現在,我需要安裝一個特殊的頁面,這實際上是由 http://www.example.com/lara/category/29

處理,以得到這個工作,我增加了以下重寫正下方location /lara/的URL http://www.example.com/mystuff/,那就是:

rewrite ^/mystuff/(.*)$ /lara/category/29/$1 last; 

不幸的是,我得到一個頁面未找到錯誤。任何見解?

進一步調查&研究:

1)

location /mystuff/ { 
return 301 /lara/index.php/category/29; 
} 

工作,雖然這不是(瀏覽器地址欄更改)我真正想要的。

2)看起來Laravel沒有看到更新的REQUEST_URI

+1

,如果你把它上面的'位置/拉拉/'塊怎麼辦? –

+0

@RichardSmith我也試過,導致頁面未找到錯誤。 – mishka

+1

'/ lara/category/23 /'(尾部斜線)是否有效? –

回答

0

試試這個

server { 
    ... 
    rewrite ^/lara/(.*)\..*$ $1/mystuff last; 
    return 403; 
    ... 
}