Nginx的1.2.2:如何让try_files工作?

我最近更新了nginx到版本1.2.2,下面的条目似乎被破坏; 大概是版本之间的语法变化?

location / { # First attempt to serve request as file, then # as directory, then fall back to index.html try_files $uri /index.html; } 

当我浏览到http://www.mysite.com/a-non-existent-url时,我被redirect到“500内部服务器错误”错误页面。 以下是日志条目

 2012/08/13 09:20:29 [error] 18457#0: *60 rewrite or internal redirection cycle while internally redirecting to "/index.html", client: 10.0.14.1, server: mysite.com, request: "GET /a-non-existent-url HTTP/1.1", host: "www.mysite.com" 

这用于按预期工作,我无法find此版本的正确语法。 现在应该如何?

更新完整configuration为请求;

 server { root /usr/share/nginx/mysite.com/public_html; index index.php index.html index.htm; server_name mysite.com www.mysite.com; access_log /usr/share/nginx/mysite.com/logs/access_log; error_log /usr/share/nginx/mysite.com/logs/error_log; location / { # First attempt to serve request as file, then # as directory, then fall back to index.html try_files $uri $uri/ /index.html; } #Added for awstats location ^~ /awstats-icon { alias /usr/share/awstats/icon/; access_log off; } #Added for awstats location ^~ /awstatscss { alias /usr/share/doc/awstats/examples/css/; access_log off; } #Added for awstats location ^~ /awstatsclasses { alias /usr/share/doc/awstats/examples/classes/; access_log off; } #Added for awstats # Configure /cgi-bin/scripts to go through php-fastcgi location ~ ^/cgi-bin/.*\.(cgi|pl|py|rb) { gzip off; fastcgi_pass 127.0.0.1:9000; fastcgi_index cgi-bin.php; fastcgi_param SCRIPT_FILENAME /etc/nginx/cgi-bin.php; fastcgi_param SCRIPT_NAME /cgi-bin/cgi-bin.php; fastcgi_param X_SCRIPT_FILENAME /usr/lib$fastcgi_script_name; fastcgi_param X_SCRIPT_NAME $fastcgi_script_name; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; fastcgi_param REMOTE_USER $remote_user; } #Make sure all PHP is process by php-fpm location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; } #rTorrent/wTorrent needs this #To loop back to the xml rpc service location /RPC2 { scgi_pass 127.0.0.1:5000; include scgi_params; scgi_param SCRIPT_NAME /RPC2; } } 

第二次更新

debugging日志已发布在这里( http://pastebin.com/raw.php?i=PtLwvQhW )。 它相当长,所以我做了这个,以避免垃圾邮件这个职位。

修改try_files行

 try_files $uri $uri/ /index.html =404; 

参考: http : //wiki.nginx.org/HttpCoreModule#try_files