我使用的是 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
被下载而不是执行。我该如何解决这个问题?
答案1
正如 Hrvoje 所建议的,Wordpres ->Nginx codex 给出了大多数可能情况的示例(http://codex.wordpress.org/Nginx)
对于您来说,配置文件应该如下所示:
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;
}
}
答案2
需要清除浏览器的缓存才能看到下一行的结果。
location / {
try_files $uri $uri/ /index.php?$args;
}