Você precisa de outra seção location
para o WordPress.
location /blog/ {
try_files $uri $uri/ /blog/index.php
}
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;
}
}