Ubuntu

Nginx 重寫到上一個目錄

  • January 23, 2015

我正在嘗試將我的部落格從blog.example.com移動到example.com/blog來做到這一點我寧願不在磁碟上移動任何東西,所以我將我的 nginx 配置文件更改為以下內容:

location /blog {
if (!-e $request_filename) {
   rewrite ^.*$ /index.php last;
}
   root /home/demo/public_html/blog.example.com/current/public/;
   index  index.php index.html index.html;
       passenger_enabled off;
       index index.html index.htm index.php;
       try_files $uri $uri/ @blog;
}

這很好用,但是當我訪問 example.com/blog 時,nginx 會尋找:

/home/demo/public_html/blog.example.com/current/public/blog/index.php 

代替

/home/demo/public_html/blog.example.com/current/public/index.php

有沒有辦法設置重寫規則,以便我可以讓伺服器自動取出 /blog/ 目錄?

就像是 ?

location /blog {
       rewrite \\blog\D  \;
   }

你誤解了root的用法。你真正想要的是別名指令:http ://wiki.nginx.org/NginxHttpCoreModule#alias

引用自:https://serverfault.com/questions/138241