2 votes

Quel est l'équivalent nginx de cette règle mod_rewrite ?

Mon wordpress me demande de mettre à jour mon fichier htaccess :

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

J'utilise nginx, et j'ai ceci mais ça ne fonctionne pas :

 location / {
            root   /home/mywebsite/public;
            index  index.php index.html index.htm;

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

1 votes

Wordpress continuera à se plaindre de ne pas avoir de htaccess car il ne comprend pas pourquoi on n'utilise pas Apache. Si votre site fonctionne, tout va bien.

2voto

kairouan2020 Points 11

Essayez de le changer en ceci ;

   location / {
       root   /home/mywebsite/public;
       index index.php index.html index.htm;
       try_files $uri $uri/ /index.php;

   }

http://wiki.nginx.org/HttpCoreModule#try_files

-1voto

Il fonctionne parfaitement.

Et pour activer PHP

passer les scripts PHP au serveur FastCGI écoutant sur 127.0.0.1:9000

    #
    location ~ \.php$ {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
    #       # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
    #
    #       # With php5-cgi alone:
    #       fastcgi_pass 127.0.0.1:9000;
    #       # With php5-fpm:
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
    }

1 votes

Pouvez-vous ajouter quelques explications sur cette magie ?

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