Nginx + Wordpress + Roots重写URL参数

时间:2015-01-27 02:25:11

标签: wordpress nginx url-rewriting

我正在尝试让Wordpress处理重写URL中的自定义参数。使用下面的重写,我可以做一个print_r($ _ REQUEST)并看到诸如spots.com/plans/ky/lexington/这样的URL实际上显示state = ky和city = lexington,但它在404.php上,而不是实际将值发布到spots.com/plans /.

对于重写,我尝试过spot.com/?pagename=plans&state=$1&city=$2,但在这种情况下,它只会将我转储到spots.com/plans上,而不会填充任何内容。我已经得到了一个像spot.com/plans/41005/这样的URL来正确发布(使用last而不是break),但是第二个参数让我哄骗了大约10个小时的nginx配置和函数过滤器。 PHP。

/plans/?state=ky&city=lexington

正确填充页面,但是很丑陋而且很繁琐。

以下是我使用的最新Nginx配置,结果为

Array ( [q] => /plans/ [state] => ky [city] => burlington ) 

显示在404页面上,我被重定向到。

# serve static files directly
    location ~* ^.+.(jpg|jpeg|gif|png|ico|html|txt)$ {
    access_log        off;
    expires           max;
    }

    location / {
        try_files $uri $uri/ /index.php?q=$uri&$args; #q=$uri isn't needed, just using it for troubleshooting?
    }

#Pass off php pages to php-fpm
        location ~ \.php$ {
        try_files $uri =404;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include /etc/nginx/fastcgi_params;
        }

rewrite ^/plans/([^.]*)/([^.]*)/$ /plans/?state=$1&city=$2 break;
rewrite ^/plans/([^.]*)/([^.]*)$ /plans/?state=$1&city=$2 break;

由于值似乎正在通过Nginx,我应该更多地看看

 add_filter('query_vars', 'parameter_queryvars' );
    function parameter_queryvars( $qvars )
    {
    $state[] = 'state';
    $city[] = 'city';
    $qvars = $city[] + $state;
    return $qvars;
    }

还是我在左外地出路?

0 个答案:

没有答案