Configuration de base pour le CMS WordPress
server {
listen 192.168.1.1:80 default_server;
server_name _;
- listen: Configuration pour le vhost par default (les accès a des server_name inconu par Nginx arriveront dans ce vhost)
- server_name: _ indique le vhost par default, mettez vos ou votre server_name si vous voulez pas faire un vhost par default
root /var/www/domaine.ltd/www;
index index.php;
N’oublier pas de modifier le “root”
location = /favicon.ico { allow all; log_not_found off; access_log off; }
location = /robots.txt { allow all; log_not_found off; access_log off; }
On désactive les log et on ne log pas les not found pour ces deux fichiers
location ~ /\. { deny all; log_not_found off; access_log off; }
location ~ wp-config.php { deny all; log_not_found off; access_log off; }
bloque l’accès aux fichiers commençant par un point et au fichier de conf (non négociable ! 🙂 )
location ~ ^/wp-content {
deny all;
location ~ .(xml|css|jpe?g|png|gif|js)$ {
allow all;
}
}
Autorise l’accès uniquement aux extensions correspondant a la regex dans intégralité du dossier wp-content, si vous voulez laisser vos psd et autre fichiers source, ils sont protégé
location / {
if (!-e $request_filename) {
rewrite ^(.+)$ /index.php?q=$1 last;
}
}
Renvoie tous sur l’index, cela permet d’utiliser le format d’url de votre choix.
location ~ \.php$ {
fastcgi_pass php5;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_ignore_client_abort off;
}
cette partie permet d’exécuter le php, a adapter suivant votre configuration
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
}
Cela permet de mettre en caches les fichiers static.