web-dev-qa-db-ja.com

PHP nginxtry_filesで実行する代わりにダウンロードしたファイル

Ubuntu 14.10、nginx 1.6.2、php5.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
nnyby

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
MTIhai

次の行で結果を表示するには、ブラウザのキャッシュをクリアする必要があります。

location / {
    try_files $uri $uri/ /index.php?$args;
}
0
vudduu