
我有兩個目錄在我的伺服器上,directory1
與其他目錄裡面,並且directory2
有一個單一文件 index.php
。
我想訪問我index.php
的http://伺服器/( /var/www/directory2/index.php
) 並且也能夠使所有目錄directory1
可用http://伺服器/測試(var/www/directory1/test
) 例如。
我嘗試使用該配置,但無法存取該index.php
文件:
server {
server_name server;
index index.php index.html index.htm;
access_log /var/log/nginx/server.access.log;
error_log /var/log/nginx/server.error.log;
location / {
root /var/www/directory1;
}
location ~ ^/index.php$ {
root /var/www/directory2;
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param APPLICATION_ENV production;
include fastcgi_params;
}
}
謝謝你的幫忙 !
答案1
我會做這個簡單的事:
root /var/www/directory1;
location = / {
root /var/www/directory2;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
fastcgi_param APPLICATION_ENV production;
include fastcgi_params;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param APPLICATION_ENV production;
include fastcgi_params;
}