web-dev-qa-db-fra.com

Nginx Rewrite Rule :: index.html ajouté à chaque lien permanent

Cela fait plusieurs heures que je travaille à faire tourner mon site WordPress sur un VPS secondaire avec Nginx. Accueil est chargé et W3T Cache fonctionne correctement, mais les permaliens sont toujours brisés et chacun d'entre eux mène à un 404:

404 Not Found
nginx/0.8.53

Dans le error.log j'ai trouvé

2012/12/22 01:06:16 [error] 16865#0: *2 "/home/user/domain.com/web-development/pdf2html-for-cforms/index.html" is not found (2: No such file or directory), client: 125.25.32.95, server: www.domain.com, request: "GET /web-development/pdf2html-for-cforms/ HTTP/1.1", Host: "www.domain.com", referrer: "http://www.domain.com/"

Donc index.html est toujours recherché pour chaque permalien semble-t-il.

Voici ce que j'ai dans /home/user/domain.com/wordpress.conf

    # WordPress single blog rules.
    # Designed to be included in any server {} block.

    # This order might seem weird - this is attempted to match last if rules below fail.
    # http://wiki.nginx.org/HttpCoreModule
    location / {
        try_files $

uri $uri/ /index.php?$args;
}
# Add trailing slash to */wp-admin requests.
rewrite /wp-admin$ $scheme://$Host$uri/ permanent;

# Directives to send expires headers and turn off 404 error logging.
location ~* ^.+\.(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)$ {
       access_log off; log_not_found off; expires max;
}

que j'ai eu du WordPress Codex. Je voulais exécuter Nginx Helper qui est censé aider à résoudre le problème de permalien de WordPress sur Nginx, mais j’ai besoin de PHP 5.2 et 5.3, je ne pouvais donc pas et je ne voulais pas compiler un nouveau PHP pour l'instant car ce n'est pas encore mon domaine d'expertise.

Est-ce que quelqu'un comment je peux résoudre ce problème et obtenir ma structure permanente de permalien /%category%/%postname%/ opérationnelle?

Mettre à jour

Essayé une nouvelle solution wordpress.conf de Bibliothèque Nginx

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

Toujours le index.html ajouté. Et cette URL avec index.html ne peut évidemment pas être trouvée. Dernière erreur:

2012/12/22 05:35:54 [error] 28148#0: *64 "/home/user/domain.com/web-development/dreamhost-vps-manager-forced-reboot-issues/index.html" is not found (2: No such file or directory), client: 125.25.32.95, server: www.domain.com, request: "GET /web-development/dreamhost-vps-manager-forced-reboot-issues/ HTTP/1.1", Host: "www.domain.com", referrer: "http://www.domain.com/"

Vous vous demandez si le fichier de configuration est chargé ou non. Comment vérifier cela?

1
rhand

Les règles de réécriture correctes pour wordpress.conf sont les suivantes:

location / {
        try_files $uri $uri/ /index.php?q=$uri&$args;
    }

mais le problème principal était son emplacement. J'ai mal lu sur le wiki de Dreamhost où je devais mettre ce wordpress.conf. Une femme formidable chez Dreamhost m’a expliqué cela. Je lui suis très reconnaissant de m'avoir dit cet oubli! Avec Dreamhost, il doit être mis @ /home/user/nginx/domain.com. Après cela, j'ai redémarré en tant que root en utilisant /etc/init.d/nginx restart et maintenant les permaliens ronronnent comme un chaton!

1
rhand