嗨,
我在nginx上运行wordpress 3x并且所有的ajax调用都被破坏了。完全相同的wordpress在Apache上运行良好。
我通过从所有jquery.post()调用中删除'index.php',以某种方式修复了ajax调用以使用nginx,但是我无法以相同的方式修复其他调用。
基本上这些变化是: 对于nginx这一行:
jQuery.post( 'index.php?ajax=true', form_values, function(returned_data) {
替换为:
jQuery.post( '?ajax=true', form_values, function(returned_data) {
我怀疑问题在于具有重写规则的nginx配置文件。你有我的配置
if (!-e $request_filename) {
rewrite ^.+/?(/wp-.*) $1 last;
rewrite ^.+/?(/.*\.php)$ $1 last;
rewrite ^(.+)$ /index.php?q=$1 last;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /xxx/public$fastcgi_script_name;
include fastcgi_params;
}
}
答案 0 :(得分:1)
可能是您在浏览器URL中的目录或“虚拟”目录中吗?
例如,如果你在www.myblog.com这应该有效,但是在www.myblog.com/my-category/my-post/上它可能不会。
您是否从Apache网站和Nginx网站上完全相同的URL位置完成了测试?
您是否尝试过路径前面的斜杠以确保它是被调用的根脚本?
jQuery.post( '/index.php?ajax=true', form_values, function(returned_data) {