我使用Ubuntu 14.10,nginx 1.6.2,php 5.5.12。 我有一个这样的网站设置:
server { root /usr/share/nginx/www/oliviataussig; index index.php; server_name oliviataussig.com www.oliviataussig.com; location / { try_files $uri $uri/ /index.php =404; } location ~ \.php$ { try_files $uri =404; include fastcgi.conf; fastcgi_pass unix:/var/run/php5-fpm.sock; } }
当我去主页(index.php),它工作正常。 但是,当我点击页面上的任何链接(这是一个类似于WordPress的CMS)时,我想回到/index.php ,并且这样做,但是index.php被下载而不是被执行。 我如何解决这个问题?
正如Hrvoje所build议的,Wordpres – > Nginx codex提供了大多数可能情况的例子( http://codex.wordpress.org/Nginx )
在你的情况下,configuration文件应该如下所示:
server { root /usr/share/nginx/www/oliviataussig; index index.php; server_name oliviataussig.com www.oliviataussig.com; location / { try_files $uri $uri/ /index.php?$args; } # Add trailing slash to */wp-admin requests. rewrite /wp-admin$ $scheme://$host$uri/ permanent; # Pass all .php files onto a php-fpm/php-fcgi server. location ~ [^/]\.php(/|$) { fastcgi_split_path_info ^(.+?\.php)(/.*)$; if (!-f $document_root$fastcgi_script_name) { return 404; } include fastcgi.conf; fastcgi_pass unix:/var/run/php5-fpm.sock; } }
清除浏览器的CACHE以查看下一行的结果是必要的。
location / { try_files $uri $uri/ /index.php?$args; }