我正在使用php Web应用程序,希望将URL映射到服务器上的文件夹,如下所示:
https://app.com/clientOne/... --> /client/...
https://app.com/clientTwo/... --> /client/...
etc
URL中clientOne
和clientTwo
之后的所有文件夹都位于我的服务器上client
下,例如clientOne/admin/
被映射到client/admin/
,而clientTwo/app/
被映射到client/app/
。我希望所有客户端共享同一应用程序,并且该应用程序将从URL确定客户端。 (我现在不想处理子域。)
仅当目录位于URL中时,我的nginx配置才起作用。当我引用特定的php文件时,我得到了404:
https://app.com/clientOne/admin/ (works)
https://app.com/clientOne/admin/index.php (returns 404)
我已经搜索过,但没有找到与此特定问题有关的人。我想我知道需要做什么,但是我尝试过的所有方法都没有用。这是我的标准nginx配置:
location ~ \.php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
这:
location ~ ^/(clientOne|clientTwo)/(.*)$ {
try_files $uri $uri/ /client/$2?$query_string;
}
我想我需要更新php位置块来解决我的问题,然后我不需要第二个位置块,但是我尝试过的所有方法都无效。我尝试将php位置块中的try_files更改为此,但这没有用:
try_files $uri /client/ =404;
有人知道该怎么做吗?谢谢