0
我對Nginx的運行WordPress的3倍,我所有的Ajax調用被打破。完全相同的WordPress在Apache上運行良好。
我已經修正了某種方式的ajax調用通過從所有jquery.post()調用中刪除'index.php'與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;
}
}
「您是否從Apache網站和Nginx網站上的完全相同的URL位置完成了測試?」 是的,我測試了完全相同的應用程序和網址。我的網址總是類似於www.blog.com/post-name。 我沒有試過用「/index.php?ajax=true」,而是用「?ajax = true」,並且在一個案例中工作,而不是在所有其他情況下工作。 – user356549 2010-08-06 13:06:44
然後我建議你試着在index.php之前加一個前導斜槓,因爲它會將動作引導到網站的根index.php文件。無論您是運行Nginx還是Apache,它都應該可以工作。 – Christoffer 2010-08-06 20:26:22
另一個提示是您在使用Firefox時運行Ajax腳本並激活了Firebug控制檯。然後您可以看到Ajax調用已經完成,並且您從中獲得了什麼結果。你很可能會遇到404錯誤。 – Christoffer 2010-08-06 20:30:12