WordPress的nginx预览文章是404没有find,但老职位正在工作

我最近把我的wordpress网站从一个主机移到另一个主机。 以前我用Apache来运行wordpress,但后来用nginx进行configuration,按照这个教程在Ubuntu 12.04上如何用nginx安装Wordpress

一切工作正常,但是当我尝试从pipe理面板预览一个新的职位,它显示未find错误。 但所有已发布的post都正常工作。

当我点击预览post它显示我的url,如http://mydomain.com/?p=2671&preview=true,但页面是404。

页面标题没有find?p = 2671&preview = true

我的nginxconfiguration是:

server { listen 127.0.0.1:8080; #listen 80; ## listen for ipv4; this line is default and implied #listen [::]:80 default ipv6only=on; ## listen for ipv6 root /usr/share/nginx/www/mysite/public; index index.php index.html index.htm; server_name mydomain.com; location / { try_files $uri $uri/ /index.php?q=$uri&$args; } location /doc/ { alias /usr/share/doc/; autoindex on; allow 127.0.0.1; deny all; } error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/www; } 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; } } 

我也安装了所有在一个search引擎优化包插件,并从我的pipe理我启用永久链接到这种格式/%year%/%monthnum%/%postname%/

我search了很多论坛,但仍然无法find确切的解决scheme。 请帮助我。

谢谢

终于找到了答案。 这是清漆配置问题 ,它不允许创建一个cookie。

打开清漆配置。 在我的情况下,该文件在/etc/varnish/default.vcl并添加以下行

 # Drop any cookies sent to WordPress. sub vcl_recv { # Allow posts preview if (req.url ~ "preview=true") { return(pass); } if (!(req.url ~ "wp-(login|admin)")) { unset req.http.cookie; } } 

并重新启动nginx和varnish

 sudo service nginx restart sudo service varnish restart 

我试着在Ubuntu 12.04 + nginx + php-fpm上重现你的问题,但是没有效果。 这意味着预览按预期工作。 唯一的区别是我没有注释fast_cgi_pass 127.0.0.1:9000行,并注释掉了另外一行。 正如我看到你已经把'清漆'的标签,所以也许这是与清漆问题,这里建议 – > http://wordpress.org/support/topic/nginx-cant-preview-posts-404-error

我所需要的wordpress服务器只有2个块

 location / { try_files $uri /index.php$request_uri; } location ~ \.php { include fastcgi_params; fastcgi_pass unix:/var/run/php5-fpm.sock; # replaced this with ur sock location } 

我不知道SEO插件,我使用不同的。

更改:

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

至:

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