Se eu entendi sua pergunta corretamente, você deseja remover a primeira parte do componente do caminho da URL do site da URL passada para o PHP. É assim que você pode fazer isso:
location ~ ^(?<userurl>[^/]+)(<dest>/.+)$ {
rewrite ^ $dest break;
}
Então, isso vai mudar URLs como este:
http://example.com/about/something
torna-se http://example.com/something
.
http://example.com/about
torna-se http://example.com/
O regex também captura a parte após o primeiro /
para a variável $userurl
, que você pode usar no seu fastcgi_param
para passar a parte do URL para o script PHP.
No entanto, em vez de dividir o trabalho entre o nginx e seu script PHP, recomendo implementar o padrão front-controller em seu script PHP. Isso significa que ele irá analisar o $_SERVER['REQUEST_URI']
e processar o pedido de acordo com as regras que você implementa no PHP.
Então, no nginx você acabou de adicionar:
try_files $uri $uri/ /index.php;
na seção do host virtual para processar as solicitações.