web-dev-qa-db-fra.com

Le plug-in de redirection Nginx + interrompt les liens permanents

Je migre d'Apache vers Nginx. Tout fonctionne très bien, sauf si le plugin de redirection est activé. Dans ce cas, je ne peux accéder à aucune des pages de mon site, à l'exception de la page d'accueil. Ils renvoient tous une erreur 404. Si je désactive à nouveau le plug-in, je peux naviguer sur mon site normalement.

Ma configuration Nginx est la suivante:

upstream php 
{
    server 127.0.0.1:9000;
}

    server
    {
        listen  80; 
        root    /home/clearpointccs/public;
        server_name www.clearpointcreditcounselingsolutions.org clearpointcreditcounselingsolutions.org;
        index    index.php;

        location / 
        {   
            index       index.php; 
            try_files $uri $uri/ /index.php;
        }   


        location ~\.php$
        {   
            include             /etc/nginx/fastcgi_params;
            fastcgi_param       SCRIPT_FILENAME     $document_root$fastcgi_script_name;
            fastcgi_pass        php; 
            fastcgi_index       index.php;
        }   
    }

J'ai essayé de regarder cela, mais tout ce que j'ai lu dit que le plugin est compatible avec Nginx, ce qui me fait croire que c'est quelque chose dans ma config. Des idées?

EDIT: Un aperçu des journaux d’erreur montre ce qui suit:

 14 2012/06/29 21:36:48 [error] 17279#0: *703 FastCGI sent in stderr: "ould not be called statically, assuming $this from incompatible context in /home/clearpointccs/public/wp-content/plugins/re    direction/models/match.php on line 68
 15 PHP Strict Standards:  Non-static method Red_Action::create() should not be called statically, assuming $this from incompatible context in /home/clearpointccs/public/wp-content/plugins/redir    ection/models/redirect.php on line 46
 16 PHP Strict Standards:  Non-static method Red_Action::available() should not be called statically, assuming $this from incompatible context in /home/clearpointccs/public/wp-content/plugins/re    direction/models/action.php on line 20" while reading response header from upstream, client: 96.228.60.10, server: www.clearpointcreditcounselingsolutions.org, request: "GET /about-us/ HTTP/    1.1", upstream: "fastcgi://127.0.0.1:9000", Host: "www.clearpointcreditcounselingsolutions.org", referrer: "http://www.clearpointcreditcounselingsolutions.org/"
1
Tom Thorogood

Je remarque deux choses dès le départ.

Tout d'abord, le paramètre try_files dans votre bloc d'emplacement racine devrait être:

try_files $uri $uri/ /index.php?$args;

De plus, j'ai ce bloc dans mon propre fichier de configuration (en utilisant parfaitement Nginx et Redirection), mais vous semblez le manquer:

location @wp {
    rewrite ^/files(.*) /wp-includes/ms-files.php?file=$1 last;

    rewrite ^(/[^/]+)?(/wp-.*) $2 last;
    rewrite ^(/[^/]+)?(/.*.php) $2 last;

    rewrite ^/(.*)$ /index.php?q=$1 last;
}

La première réécriture est destinée au multisite, vous pouvez donc en avoir besoin ou non ...

1
EAMann