Si on tape l’URL sans le /à la fin, il redirige en ajoutant le /à la fin
Si on tape l’URL avec le /à la fin, tout doit fonctionner
Tout ne doit être que statique et les fichiers doivent obligatoirement exister, sauf index.html et index.htm
J’en suis donc arrivé à ces règles, plus « proches » de la configuration possible dans Nginx :
Filtre « custom » avec /à la fin. Si oui, n’accepter que index.html ou index.htm
Filtre « custom » en ignorant le /à la fin. Si oui, le nom, qui doit être forcément un fichier, sinon, rediriger en ajoutant un / pour qu’il reboucle au début
que vous avez essayé de copier-coller le code qu’il vous a donné dans un fichier vhost ;
que vous n’y comprenez rien en règles de réécriture…
Alors essayez de mettre ce qui suit en règle de réécriture dans votre fichier vhost :
# Olivier Pons : règles pour WordPress
# faites "à la main" :
# si index, on stoppe tout :
RewriteRule ^index\.php$ - [QSA,L]
# Tester TOUTES les possibilités
# pour voir si c'est un fichier :
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [QSA,L]
Dans mon cas leurs règles ne fonctionnaient pas car il ne voyait pas que les fichiers étaient bien là, alors j’ai ajouté la vérification en ajoutant %{DOCUMENT_ROOT}.
Oui je sais ça n’est pas l’idéal, mais comme il est écrit sur l’entrée de Facebook :
Problème :
Chercher une variable dans les paramètres _GET, y compris en plein milieu (les solutions en général ne sont valides que si la variable est au début dans le _GET) Solution : RewriteCond %{QUERY_STRING} (^|&)nomvariable=valeur(&|$)
Problème :
Prendre en compte toute une séquence de caractères sauf le slash Solution : RewriteRule ^/([^/]+)/?$ page.php?page=$1 [L]
ou encore prendre tout sauf le slash et le point : RewriteRule ^/([^/\.]+)/?$ page.php?page=$1 [L]
Pour les quelques étudiants qui voudraient récupérer et lire le cours, un petit conseil sur les question qui vont vous être posées :
il vous faut connaitre les directives de réécriture les plus utilisées (redirection, etc) ;
il vous faut impérativement réussir à installer un ou plusieurs hôtes virtuels sur un ordinateur local et vous assurer que vous vous souvenez des étapes à faire ;
il vous faut savoir mettre en place une ou deux règle de réécriture afin de bien comprendre le fonctionnement. Vous allez avoir un ou deux exemples de règles à expliquer, et si vous n’avez jamais essayé d’en mettre une en place vous ne pourrez jamais les expliquer ;
enfin… avez vous bien en tête les 3 principes de sécurité ?
Bonne chance !
Et surtout n’hésitez pas à laisser un commentaire ou poser des questions ici.
Si vous avez des commentaires à faire sur mon cours, même chose : lâchez vous !