我的添加重写规则返回404

时间:2015-05-04 作者:Adam Simpson

我使用的是Nginx和一个自定义的add\\u rewrite\\u规则,如下所示:

function add_pony() {
  //this should allow me to POST to domain.com/pony
  add_rewrite_rule(\'^pony$\', \'index.php?pony=true\', \'top\');
}

add_action( \'init\', \'add_pony\');

function parse_pony( $params ) {
  if(isset($params->query_vars[\'pony\'])){
    //kick off endpoint specific code
  }
  return $params;
}

add_action( \'parse_request\', \'parse_pony\' );
我的WP的nginx配置如下所示:

server {
    listen 80;

    root /var/www/domain.net;
    index index.php;

    server_name domain.net;

    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;
        }

        location ~ \\.php$ {
        try_files $uri = 404;
        fastcgi_split_path_info ^(.+\\.php)(/.+)$;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_intercept_errors on;
        include fastcgi_params;
     }
}
当我发布或获取新URL时,我会得到一个404。WordPress的其余部分工作正常,但当我将permalink设置更改为post name以外的内容时,WordPress就会停止正常工作。

我被难住了。

2 个回复
最合适的回答,由SO网友:Adam Simpson 整理而成

已解决。Nginx和WordPress操作正确。在我的请求处理代码的后面有一个错误条件。

SO网友:sirnornur

更新:我发现了我的问题,如果其他人遇到此问题,请检查您的服务器配置是否正确设置为使用。htaccess文件。检查wp安装中是否存在的最简单方法是键入wordpress主机后不存在的url地址,例如:http://your-domain.com/location-that-doesnt-exist

如果您的服务器正确配置为使用htaccess文件,那么当您键入上述类似url时,您将看到带有wordpress主题的404页面。

若并没有正确设置,那个么您将看到服务器的默认404页面,它将并没有wordpress主题。

希望这能帮助别人。

结束

相关推荐

除管理端和主页外,其他页面的内容为“500内部服务器错误-nginx/1.1.19”。

我已经建立了一个WordPress网站。我可以登录并浏览首页,但除了管理端以外的所有内容都会将我带到一个白色页面,页面上有文本“500 Internal Server Error-nginx/1.1.19”。我已经读过这方面的内容,似乎无法解决这个问题。我找不到。htaccess,即使我的FileZilla强制显示隐藏文件。我读到您可能必须启用“fancy”permalink,所以我启用了,但没有结果。