9
votes

WordPress 3.0 & Nginx - Permalink, 404 problème

J'ai installé Nginx, FastCGI et PHP sur mon serveur. WordPress 3.0 installé après un peu de bataille de monstres, mais il est installé et travaille bien.

Cependant, lorsque je modifie les paramètres de permalink à autre chose que par défaut, je reçois 404 erreurs sur chaque poste, article et page.

Je comprends que c'est quelque chose à voir avec Nginx, sans supporter .htaccess et WordPress se confondent avec où aller quand une page est requillée.

J'ai essayé quelques réécrites dans les fichiers Nginx Conf et même le plug-in Nginx Compatibility; Ni non plus travaillé. Avec une réécriture, j'ai réussi à arrêter les 404 erreurs, mais au lieu de WordPress trouver le poste que j'étais après avoir simplement eu ma page de confirmation PHP. Bah.

Les forums sont jonchés de personnes ayant des problèmes similaires. Est-ce que quelqu'un a une solution?


2 commentaires

Dupliqué possible de conversion WordPress 3.0 de .htaccess à Nginx Rewrite Règles


Tout est lié via ce poste ne fonctionne pas.


8 Réponses :


2
votes

Avez-vous essayé plug-in NGinx Compatibility ?

Plus élasticdog semble fournir un assez Article concis sur GET WP Travailler avec Nginx - qui comprend d'obtenir de jolies permaliens au travail.

Voici un autre article qui semble traiter spécifiquement avec Règles de réécriture Nginx pour WordPress .


3 commentaires

Oui, fatigué le plugin - ne fonctionne pas. J'ai aussi suivi le tutoriel d'Elasticdog, j'utilise une grande partie de sa configuration maintenant. J'ai également suivi wiki.dreamhost.com/nginx et comprendre la plupart d'entre eux (je pense!) Mais encore une fois, même problème. Chaque fois que je modifie les permaliens à autre chose que par défaut et essayez d'accéder à un poste, de l'article ou de la page I obtenez le "Aucun fichier d'entrée spécifié". Erreur. Je suppose que WordPress (et les réécrites) ne parviennent pas à dire WordPress Que faire, mais je n'obtiens nulle part ... :(


Le plugin fonctionne, c'est juste qu'il y a une autre chose que vous devez faire: Piran.com.au/2011/10/NGINX-AND-WordPress-Permalinks


@Rich Votre lien est maintenant un 404, raison pour laquelle il est bon d'extraire des informations importantes dans une modification de la réponse ou de votre propre réponse.



5
votes

Après beaucoup de douleur: xxx

si le fichier demandé n'existe pas, transmettez-le à index.php. C'est un peu lent et je pense que je pourrais essayer de ne pas utiliser une requête, mais ça marche ... :)


2 commentaires

Heureux d'entendre que vous avez fait une percée! Désolé @taffy, je n'ai aucune expérience avec Nginx, mais je ferai toujours de mon mieux pour aider;)


Vous n'avez pas besoin d'utiliser une recherche de réécriture; Voir la réponse ici



17
votes

sur votre emplacement / bloc,

Ajoutez ceci et supprimez toutes les règles de réécriture non spécifiques: xxx


3 commentaires

Cela a fonctionné sans problèmes, et c'est la solution recommandée en fonction du wiki officiel Nginx.


Voici la clé: elle doit être votre annuaire / . Si vous le mettez dans votre répertoire / blog ou n'importe où ailleurs, vous obtiendrez toujours 404 erreurs.


wiredniko - mettre avant l'index.php votre lieu de répertoire. Dans votre cas /index.php tournerait vers /blog/index.php.



2
votes

C'était comme ça que j'ai résolu mes permaliens dans mes blogs WordPress dans Dreamhost.

à l'intérieur du dossier /home/ftpusername/nginx/example.com / (si vous ne l'avez pas, Créez-le)
Créé le fichier nginx.conf avec le contenu suivant xxx

redémarré le nginx
/etc/init.d/nginx recharge

Certaines notes:

ftpusername et exemple.com doivent être modifiés en fonction de votre système.

C'était ça!
Bonne chance pour vous tous.


0 commentaires

0
votes

Cela ne fonctionne pas si vous utilisez un emplacement autre que / comme:

~ .php $, ce que je voulais dire que le joli lien fonctionnera mais que vos graphismes seront déplacés partout. Donc, ce dont vous avez besoin est exactement indiqué ci-dessous.

http://www.pearlin.info xxx


0 commentaires

0
votes

J'ai fait ce qui suit ..

dans le dossier /HOME/USERRUNNINGINX/NGINX/DOMAININKINK.CORE Do sont:

par défaut.conf (fichier) xxx

goutte ( Fichier) xxx

nginx.conf (fichier) xxx

}

wordpress-nginx. Conf (fichier) xxx


0 commentaires

6
votes

Si WordPress est sur un autre répertoire en dehors de la racine, au lieu d'avoir xxx

, vous pouvez avoir: xxx

Cette page a exactement le même concept. J'aurais dû lire et l'avoir essayé d'abord: règle de réécriture Nginx sous un sous-répertoire < / p>


0 commentaires

0
votes

Ajout de ce bloc à votre nginx.conf doit résoudre le problème:

     if (!-e $request_filename) {
            rewrite ^/wordpress_dir/(.+)$ /wordpress_dir/index.php?q=$1 last;
     }


0 commentaires