Em vez de alias
, o uso pode usar a diretiva raiz no bloco de locais.
Acho que você pode simplificar sua correspondência de local usando apenas /gps
.
location /gps {
root /home/sitegps/public;
try_files $uri $uri/ /gps/index.php?$uri&$args;
}
Isso não reescreverá a solicitação e esperará corresponder arquivos em um diretório chamado gps
da seguinte forma: /home/sitegps/public/gps/
. Eu não tinha certeza se isso era necessário.
Atualizar
Trabalhando com a suposição de que você não deseja ter o diretório gps
no diretório /home/sitespg/public
, testei usando o alias e criei esta configuração:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}
location /gps/ {
alias /var/www/gps;
try_files $uri $uri/ =404;
}
}
Acredito que o alias
fará o que você quer, mas eles estão causando problemas ou há algo errado.
Com a barra no final em /gps/
, você evitará caminhos correspondentes, como /gpsport
, mas será necessário reescrever /gps
a /gps/
ou corresponder /gps
exatamente com um bloco de localização.
reescreva:
rewrite ^/gps$ /gps/
localização:
location = /gps {
alias /var/www/gps;
try_files $uri $uri/ =404;
}
Sem dúvida, há mais variações que também funcionarão.