1 votes

WordPress dans un sous-répertoire avec Nginx

Peu importe ce que je semble faire, mon site WordPress fonctionne parfaitement, y compris tous les permaliens, mais je ne peux pas accéder à la zone d'administration de wp. Chaque fois que j'essaie de le faire, j'obtiens une erreur 404. J'ai installé WordPress dans son propre répertoire, simplement appelé "wordpress". Voici mon fichier de configuration :

serveur {
    écoute 443 ssl;
    nom_du_serveur my-domain.com;
    racine /home/wp-user/my-domain.com/public;

    protocoles ssl TLSv1 TLSv1.1 TLSv1.2;

    index index.html index.htm index.php;

    jeu de caractères utf-8;

    # Refuser toutes les tentatives d'accès aux fichiers cachés tels que .htaccess, .htpasswd, .DS_Store (Mac).
    # Continuer à enregistrer les demandes pour les analyser plus tard (ou les passer à des utilitaires pare-feu tels que fail2ban)
    emplacement ~ /\. {
        refuser tout;
    }

    emplacement = /favicon.ico { journal_d'accès off; journal_non_trové off; }
    emplacement = /robots.txt  { journal_d'accès off; journal_non_trové off; }

    journal_d'accès off;
    journal_erreur  /var/log/nginx/my-domain.com-error.log erreur;

    # Refuser l'accès à tout fichier avec une extension .php dans le répertoire des téléchargements
    # Fonctionne dans les installations de sous-répertoire et également dans le réseau multisite
    # Continuer à enregistrer les demandes pour les analyser plus tard (ou les passer à des utilitaires pare-feu tels que fail2ban)
    emplacement ~* /(?:uploads|files)/.*\.php$ {
        refuser tout;
    }

    # Règles pour un seul blog WordPress.
    # Conçu pour être inclus dans n'importe quel block serveur {}.

    # Cet ordre peut sembler étrange - c'est effort pour correspondre en dernier si les règles ci-dessous échouent.
    # http://wiki.nginx.org/HttpCoreModule
    emplacement / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    # Directives pour envoyer des en-têtes d'expiration et désactiver l'enregistrement des erreurs 404.
    emplacement ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
        journal_d'accès off; journal_non_trové off; expire max;
    }

    emplacement /wordpress {
    try_files $uri $uri/ /wordpress/index.php?$query_string;
  }

    emplacement ~ \.php$ {
        try_files $uri /wordpress/index.php;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        # NOTE : Vous devez avoir "cgi.fix_pathinfo = 0;" dans php.ini

        # Avec php5-cgi seul :
        #fastcgi_pass 127.0.0.1:9000;
        # Avec php5-fpm :
        proxy_intercept_errors on;
        error_page 502 = @fallback;

        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root;
        include fastcgi_params;
    }

    emplacement @fallback  {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root;
        include fastcgi_params;
    }

    emplacement ~ /\.ht {
        refuser tout;
    }
}

1voto

AP257 Points 9131

Wp-admin est une page séparée de index.php donc votre directive de localisation n'y accèdera jamais. Vous définissez essentiellement votre emplacement comme /WordPress et imbriquez votre emplacement .php à l'intérieur. Je suis sur une tablette donc je vais ajouter un fragment de code d'exemple quand je serai de nouveau sur un ordinateur de bureau/portable.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X