Os permalinks do Nginx e do Wordpress são corrompidos se o blog não estiver na raiz

1

Portanto, instalei nginx e Wordpress no meu servidor. No entanto, meu blog não está no domínio raiz. (por exemplo, example.com/blog e o conteúdo está em /var/www/example.com/blog )

Estou usando as configurações abaixo no nginx e minha instalação do Wordpress estava usando as regras de reconfiguração de URL no Apache. (por exemplo, permalinks como example.com/blog/2012/hello-world )

No entanto, curiosamente, todas essas regras de reescrita de URL entram em index.php in / (não em blog/ ). Eu quero consertar isso, mas não consegui descobrir como. Outra coisa interessante é que example.com/blog (home page) funciona bem.

Por exemplo, acho que, como example.com/blog/2012/hello-world não é um arquivo real, try_files está executando example.com/index.php . (A URL é a mesma, mas o index.php é executado). Qualquer ajuda é apreciada!

server {
    listen   80;

    root /var/www/example.com;
    index index.php;

    server_name 192.34.59.214;

    location / {
            try_files $uri $uri/ /index.php?q=$uri&$args;
    }

    error_page 404 /404.html;

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
          root /usr/share/nginx/www;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9$
    location ~ \.php$ {
            #fastcgi_pass 127.0.0.1:9000;
            # With php5-fpm:
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
    }
}
    
por Ahmet Alp Balkan 14.02.2013 / 00:23

1 resposta

2

Você precisa de outra seção location para o WordPress.

location /blog/ {
    try_files $uri $uri/ /blog/index.php
}
    
por 14.02.2013 / 00:33