1
我已經花了這個muy tiempo,我無法得到一個解決方案。 我需要一種方法來指向相同的url,但具有不同的根目錄到同一個應用程序。我不想使用重寫,因爲根目錄名稱必須由應用程序處理,並重寫丟棄它。nginx別名和動態目錄名稱
http://www.host.com/a/ --> /var/www/html/project/
http://www.host.com/b/ --> /var/www/html/project/
http://www.host.com/c/ --> /var/www/html/project/
我已經成功在nginx的配置有固定名vdirectory
一個別名目錄,使Nginx的請求轉發到FastCGI的。
location /vdirectory {
alias /var/www/html/project/;
try_files $uri $uri/ /vdirectory/index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
}
上述工作正常。
由於我不希望使用固定的根目錄的名字,但是任意的,這是我到目前爲止管理:
location ~ ^/(.?)$ {
alias /var/www/html/project/;
try_files $uri $uri/ /$1/index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
}
不用說,它會返回404這是一個好兆頭因爲這意味着正則表達式已經識別了路徑,但請求沒有正確轉發。
工作配置和錯誤的一個之間的唯一區別是/vdirectory
VS ~ ^/(.?)$
是的。這就是我一直在尋找的。獲得如此精確的解決方案非常罕見。太感謝了 –