让Nginx支持SCRIPT_URL
由于访问增加,将服务器由apache转换到了nginx。
由于框架底层里用到了SCRIPT_URL,需要配置nginx支持这个参数。
特记录配置:
server { listen 80; server_name test.com; root /data/www; location / { index index.php; } if ( $fastcgi_script_name ~ \..*\/.*php ) { return 403; } # if the request file name contains one of the below extensions, # serve it directly if ($request_filename ~* \.(js|ico|gif|jpg|png|css|xml|php|txt)$) { break; } # otherwise, /index.php handles the request rewrite ^(.*)$ /index.php$1 last; location ~ ^(?P.+\.php)(?P .*)$ { include fastcgi_params; fastcgi_param PATH_INFO $PATH_INFO; fastcgi_param DOCUMENT_ROOT /data/www; fastcgi_param PATH_TRANSLATED $document_root$PATH_INFO; fastcgi_param SCRIPT_FILENAME $document_root$SCRIPT_FILENAME; fastcgi_index index.php; fastcgi_param RUN_MODE production; # Attention! Both PHP_SELF and SCRIPT_NAME must contain the same value, # but they don't! fastcgi_param PHP_SELF $uri; fastcgi_param SCRIPT_NAME $uri; # set SCRIPT_URL/SCRIPT_URI for compatibility fastcgi_param SCRIPT_URL $PATH_INFO; fastcgi_param SCRIPT_URI $scheme://$http_host$PATH_INFO; fastcgi_param PHP_VALUE "include_path=$document_root:$document_root/include"; try_files $SCRIPT_FILENAME =404; fastcgi_pass unix:/tmp/php-fcgi-faq.sock; } }