Use isto:
location = / {
return 301 http://example.com/blog;
}
A chave aqui é a =
, o que faz com que o nginx aplique esta regra apenas às solicitações que chegam à pasta raiz, em nenhum outro lugar.
Recentemente, recebi um VPS com o nginx e mudei a instância do WordPress. Depois de algumas pesquisas, obtive permalinks para trabalhar. O blog está localizado dentro de uma pasta blog
.
Eu gostaria que as solicitações para example.com
fossem redirecionadas para example.com/blog
. No entanto, as solicitações para example.com/doc/...
devem não ser redirecionadas para example.com/blog/doc/...
.
Procurei outras perguntas / respostas, mas todas resultaram em um loop de redirecionamento infinito.
Esta é a configuração atual:
server {
listen 80;
# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;
root /usr/share/nginx/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html index.php;
server_name mysite.com;
location / {
# Redirect to /blog
}
location /blog/ {
try_files $uri $uri/ /blog/index.php?$args;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
location ~ /\.ht {
deny all;
}
# pass the PHP scripts to FastCGI server listening on the php-fpm socket
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
'' '