403 forbidden sur wordpress index avec nginx, le reste des pages, beau travail
Je suis la mise en place de mon blog sur une nouvelle instance EC2 parce que l'un des sites sur le serveur qui héberge en ce moment c'est une attaque ddos.
Je vais avoir quelques problèmes avec nginx, parce que je peux voir toutes les pages, mais fine 403 sur l'index, ou voir l'index mais 404 sur les pages (selon la config que j'utilise)
Voici ma config nginx:
server {
listen 80;
server_name www.test.com;
server_name test.com;
root /www/blog;
include conf.d/wordpress/simple.conf;
}
Et simple.conf:
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location / {
# This is cool because no php is touched for static content.
# include the "?$args" part so non-default permalinks doesn't break when using query string
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
#NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
include fastcgi.conf;
fastcgi_intercept_errors on;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
si je change le try_files $uri $uri//index.php?$args; à l'index index.php, la première page sera beau travail et le reste sera 404. Si je le laisse comme ça, la première page 403.
Voici le log d'erreur:
2013/08/07 19:19:41 [error] 25333#0: *1 directory index of "/www/blog/" is forbidden, client: 64.129.X.X, server: test.com, request: "GET /HTTP/1.1", host: "www.test.com"
Ce répertoire est 755 sur la nginx utilisateur:
drwxr-xr-x 6 nginx nginx 4096 Aug 7 18:42 blog
Est-il rien d'évident je fais mal ?
Merci !
Vous devez vous connecter pour publier un commentaire.
Ajouter
index index.php;
Dans le bloc de serveur, si il ne fonctionne pas, alors vous devez supprimer le$uri/
parce que vous ne voulez pas faire unautoindex on
MODIFIER: Juste remarqué que vous avez déjà compris votre problème, donc je vais ajouter le raisonnement derrière elle, la raison pour laquelle vous avez besoin
autoindex on;
est parce que, sans elle, nginx va suivre latry_files
règles,/
, et bien sûr, il échoue./
(par l'ajout de la racine, il serait =/www/blog/
), cette vérification va réussir, alors il essaie de lister le contenu du dossier.autoindex on;
donc, par défaut de nginx devrait interdire le listage de répertoire, il serait donc retourner une erreur 403 forbidden.$uri/
de test ou de ne pas l'atteindre, parce que vous n'avez probablement pas un dossier appeléimage.jpg
oustylesheet.css
etc.Dirait que j'ai besoin de la en effet index.php dans le serveur {} définition et non pas dans l'emplacement {}
Il semble que vous ne permettant pas d'arguments pour être envoyé à la CMS afin de ne montrer cette uri qui permettrait d'apporter des informations de la base de données et vous rediriger vers la page 403.