Un utilisateur a demandé 👇

Dommage, le permalien est invalide et maintenant seule l’URL par défaut est valide ; lorsque je sélectionne /%jobname%/, au lieu de la page d’accueil d’un type de travail et de la page d’archive personnalisée, toutes les autres pages passeront à la page 404, je ne comprends pas pourquoi c’est …

Et quand j’ouvre le même thème sur un autre nom de domaine, ce scénario ne se produit pas, bien sûr, ce ne sont pas les causes du contenu ou du plugin ;

L’environnement du site est : Nginx 1.12.0, Centos 6.8 et php7.1.4.


(@ tm3909)

il y a 3 ans, 1 mois

@bearshang,

Nginx peut être trivial lorsqu’il s’agit de configurer WordPress. WordPress attend apache, il charge donc la configuration du permalien dans un fichier caché à l’intérieur du soi-disant répertoire racine HTML .htaccess. Ce fichier contient les paramètres d’utilisation d’Apache, y compris la façon de rediriger les permaliens vers vos sites.

Cependant, avec Nginx, vous devrez le faire dans votre configuration Nginx. Je ne sais pas où réside la configuration sur Centos, mais regardez quelque part dans /etc/nginx/. Assurez-vous de modifier le vôtre Emplacement configuration, pas la configuration globale de Nginx.

Vous devrez transmettre l’emplacement et rediriger la configuration vers le fichier, comme :

location / {
    index index.php index.html index.htm;
    try_files $uri $uri/ /index.php?$args;
}

Voir les sources ci-dessous pour des informations un peu plus détaillées. Je recommanderais également de suivre le lien Nginx WordPress.org pour plus d’options de configuration.

Sources:

https://codex.wordpress.org/Nginx

http://nginxlibrary.com/wordpress-permalinks/

J’espère que cela vous aidera et faites-moi savoir si vous avez des questions de suivi.

À M


(@pothi)

il y a 3 ans, 1 mois

Pour améliorer la réponse de Tom (qui couvre tout pour faire fonctionner les permaliens) …

Ce qui suit est plus précis car il suit le point d’interrogation index.php fichier, mais s’il y a des chaînes de requête (ou $args) présentes.

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

.


(@ tm3909)

il y a 3 ans, 1 mois

+1 Merci @pothi !


(@bearshang)

il y a 3 ans, 1 mois

@tm3909 Comment dire…

Je suis les méthodes dans le test de données, le problème existe toujours…

Voici ma configuration nginx :


server
    {
        listen 80;
        server_name dev.trueniu.com *.dev.trueniu.com;
        index  index.php index.html index.htm;
        root  /home/wwwroot/trueniu-php/trueniu;

        include enable-php.conf;
        include wordpress.conf;
    }

wordpress.conf :


access_log /home/wwwlogs/nginx_access.log;

location / {
    index index.php index.html index.htm;
    try_files $uri $uri/ /index.php?$args;
}

Et j’ai essayé votre méthode @pothi. Malheureusement, cela ne semble pas avoir d’effet;

Je suppose donc avec audace que le problème ne devrait pas être la configuration nginx. Parce que j’utilise la méthode de sous-domaine multi-sites, le même programme wordpress sur les performances des autres sites de sous-domaine est bon, et ce problème n’apparaît pas.

Il doit y avoir autre chose qui cause ce problème.-_-


(@bearshang)

il y a 3 ans, 1 mois

@tm3909 @pothi

Heureusement, j’ai trouvé la raison, pas le résultat de la configuration nginx, mais la cause d’un plugin multilingue, le plugin s’appelle ‘Polylang’

J’utilise ce plugin et en même temps j’ajoute un langage qui pourrait détruire la structure du permalien, provoquant l’échec du permalien…

Merci beaucoup pour votre réponse!


(@bearshang)

il y a 3 ans, 1 mois

@tm3909 @pothi

J’ai trouvé une solution au problème :


add_action( 'init', 'flush_rewrite', 99 );
function flush_rewrite()
{
    flush_rewrite_rules();
}

Cela a-t-il résolu votre problème ?

Was this helpful?

0 / 0

Leave a Reply 0

Your email address will not be published. Required fields are marked *