2010-08-06 3 views
0

어이,아약스

난의 nginx에 워드 프레스의 3 배를 실행하는거야 내 모든 아약스 통화가 끊어집니다 Nginx에/워드 프레스에 작동하지 않습니다. 정확하게 동일한 워드 프레스는 아파치에서 잘 돌아 간다.

모든 jquery.post() 호출에서 'index.php'를 제거하여 nginx에서 작동하도록 ajax 호출을 수정했지만 동일한 방법으로 다른 호출을 수정할 수는 없습니다.

기본적으로 변화가 있었다 : 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; 
} 
} 

답변

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) { 
+0

"Apache 사이트와 Nginx 사이트에서 동일한 URL 위치에서 테스트를 수행 했습니까?" 예 정확히 동일한 응용 프로그램과 URL을 테스트했습니다. 내 URL은 항상 www.blog.com/post-name과 같습니다. "/index.php?ajax=true"로 시도하지는 않았지만 "? ajax = true"로하고 다른 모든 경우에는 작동하지 않는 케이스에서 작업했습니다. – user356549

+0

나는 그 작업을 사이트의 루트 index.php 파일로 보낼 것이므로 index.php 앞에 슬래시를 넣으십시오. 그것은 당신이 Nginx 또는 아파치를 돌리고 있는지 여부에 상관없이 작동해야합니다. – Christoffer

+0

또 다른 팁은 Firefox를 사용할 때 Ajax 스크립트를 실행하고 Firebug 콘솔을 활성화하는 것입니다. 그런 다음 Ajax 호출이 이루어지고 어떤 결과를 얻었는지 확인할 수 있습니다. 404 오류가 발생했을 가능성이 큽니다. – Christoffer