Compilation rapide d'instructions à utiliser dans un fichier .htaccess pour le serveur Apache (équipé de mod_rewrite).
Bloquer l'accès à une ressource
RedirectMatch 404 .git
RedirectMatch 404 /spip/
Rediriger HTTP vers HTTPS
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
Redirections
On utilise
Redirect
ouRedirectTemp
pour une redirection temporaire = code HTTP 302RedirectPermament
pour une redirection définitive (SEO) = code HTTP 301
ℹ️ Ces instructions n'acceptent pas d'expression régulière, pour cela il faut utiliser à la place RedirectMatch
ou RewriteRule
avec le flag R=301
RedirectPermanent /home /?lang=en [L]
Vers un site externe
RedirectPermanent /formations https://formations.example.org/ [L]
Ajouter un slash final (il faut utiliser un regexp ici, un simple /ecrire provoquera une boucle infinie)
RedirectPermanent "^/ecrire$" /ecrire/ [L]
Suppprimer un slash final
RedirectMatch "^\/notre-societe\/$" "/notre-societe" [L]
Rediriger un chemin
RedirectMatch "^\/spip\/(.*)" "/autre/chemin/$1" [L]
Un domaine (ou un ensemble de domaines) vers un autre
RewriteEngine on
RewriteCond %{HTTP_HOST} ^alsacreations.fr [OR]
RewriteCond %{HTTP_HOST} ^www.alsacreations.fr
RewriteRule ^(.*)$ https://www.alsacreations.com/$1 [R=301,NC,L]
Réécriture
RewriteEngine on
On ignore la query string qui vient après ?
dans la règle.
RewriteRule "^spip.php$" /home/www/spip/spip.php [L]
# Va aussi répondre à spip.php?article3 ou spip.php?page=truc
Un chemin, dossier, tout ce qui commence par...
RewriteRule ^img/(.*)$ /home/www/autre/chemin/img/$1 [L]
Une url précise
RewriteRule ^notre-societe$ /home/www/autre/spip/notre-societe [L]
# L'équivalent avec une redirection HTTP permanente
RewriteRule ^notre-societe$ /home/www/autre/spip/notre-societe [L, R=301]
Tout réécrire sauf une condition
RewriteCond %{REQUEST_URI} !^/spip\.php.*
RewriteRule ^(.*)$ /home/www/wordpress/public/$1 [L
WordPress
Fichier-type par défaut
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Robots : empêcher l'indexation
Header set X-Robots-Tag "noindex, noarchive"