2012-09-29 24 views
8

Gần đây tôi đã chuyển từ APACHE sang NGINX. Tuy nhiên, một nơi nào đó dọc theo con đường NGINX bắt đầu phớt lờ chuỗi truy vấn của tôi. Ví dụ: tôi sử dụng phân trang như vậy:Tại sao NGINX bỏ qua các chuỗi truy vấn của tôi?

http://example.com/index.php?page=5 

Đơn giản chỉ cần tải example.com như thể chuỗi truy vấn không có ở đó.

Dưới đây là các cấu hình (sửa theo đề nghị của Nelson):

/etc/nginx/nginx.conf:

user www-data; 
worker_processes 4; 
pid /var/run/nginx.pid; 

events { 
     worker_connections 768; 
     # multi_accept on; 
} 

http { 

    ## 
    # Basic Settings 
    ## 

    sendfile on; 
    tcp_nopush on; 
    tcp_nodelay on; 
    keepalive_timeout 65; 
    types_hash_max_size 2048; 
    # server_tokens off; 

    # server_names_hash_bucket_size 64; 
    # server_name_in_redirect off; 

    include /etc/nginx/mime.types; 
    default_type application/octet-stream; 

    ## 
    # Logging Settings 
    ## 

    access_log /var/log/nginx/access.log; 
    error_log /var/log/nginx/error.log; 

    ## 
    # Gzip Settings 
    ## 

    gzip on; 
    gzip_disable "msie6"; 

    # gzip_vary on; 

    # gzip_vary on; 
    # gzip_proxied any; 
    # gzip_comp_level 6; 
    # gzip_buffers 16 8k; 
    # gzip_http_version 1.1; 
    # gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; 

    ## 
    # nginx-naxsi config 
    ## 
    # Uncomment it if you installed nginx-naxsi 
    ## 

    #include /etc/nginx/naxsi_core.rules; 

    ## 
    # nginx-passenger config 
    ## 
    # Uncomment it if you installed nginx-passenger 
    ## 

    #passenger_root /usr; 
    #passenger_ruby /usr/bin/ruby; 

    ## 
    # Virtual Host Configs 
    ## 

    include /etc/nginx/conf.d/*.conf; 
    include /etc/nginx/sites-enabled/*; 
} 

#mail { 
#  # See sample authentication script at: 
#  # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript 
# 
#  # auth_http localhost/auth.php; 
#  # pop3_capabilities "TOP" "USER"; 
#  # imap_capabilities "IMAP4rev1" "UIDPLUS"; 
# 
#  server { 
#    listen  localhost:110; 
#    protocol pop3; 
#    proxy  on; 
#  } 
# 
#  server { 
#    listen  localhost:143; 
#    protocol imap; 
#    proxy  on; 
#  } 
#} 

/etc/nginx/sites-available/default :

server { 
     root /usr/share/nginx/www/; 
     index index.php; 

     # Make site accessible from http://localhost/ 
     server_name localhost; 

     # Pass PHP scripts to PHP-FPM 
     location ~ \.php { 
       include /etc/nginx/fastcgi_params; 
       fastcgi_pass 127.0.0.1:9000; 
     } 

     client_max_body_size 8M; 
} 

Trả lời

4

Chỉ cần sử dụng làm Vị trí:

location ~ \.php { 
    include /etc/nginx/fastcgi_params; 
    fastcgi_pass 127.0.0.1:9000; 
} 

Để cụ thể hơn hai dòng sau đây của bạn đang loại bỏ các chuỗi truy vấn:

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
fastcgi_split_path_info ^(.+\.php)(/.+)$; 
+0

Cảm ơn sự trợ giúp. Tôi đã cập nhật tệp và khởi động lại 'php5-fpm' và' nginx' nhưng sự cố vẫn còn ... –

+0

Bạn có thể có một số quy tắc viết lại tại chỗ, đăng toàn bộ tệp, thay thế tên trang web hoặc dữ liệu cá nhân khác. – Nelson

+0

OK, tôi đã cập nhật bài đăng với nhiều thông tin hơn ... –

29

Tôi đã có cùng một vấn đề. Tôi đã thay đổi phần vị trí trong tệp máy chủ ảo nginx của tôi như dưới đây và nó hoạt động tốt cho tôi.

location/{ 
    # try_files $uri $uri/ /index.php; 
    try_files $uri $uri/ /index.php$is_args$args; 
} 
+0

Cảm ơn vì điều này! Tôi đã có is_args thiếu và điều này cố định vấn đề của tôi, nơi chuỗi truy vấn đã bị bỏ qua. –

Các vấn đề liên quan