Paramétrage par .htaccess
Attention, Nginx ne sait pas traiter les règles définies dans les fichiers .htaccess
habituels d’Apache ; à la place il utilise une configuration générique au serveur, avecune syntaxe complètement différente, meme si elle reste fondée sur l’interprétation d’expressions régulières ; toutefois vous pouvez obtenir un résultat avec l’outil en-ligne https://winginx.com/en/htaccess
voici le résultat de cette conversion automatique pour le htaccess.txt
de SPIP 3.2
# nginx configuration by winginx.com
location ~ /\\..*(/.*|$) {
return 403;
}
location / {
if ($query_string ~ "action=rss"){
rewrite spip.php /spip.php?page=rss break;
}
if ($query_string ~ "action=ical"){
rewrite spip.php /spip.php?page=ical_prive break;
}
if (-e $request_filename){
rewrite ^/rubrique([0-9]+)(\.html)?$ /spip.php?page=rubrique&id_rubrique=$1 break;
}
rewrite ^/([1-9][0-9]*)$ /spip.php?action=redirect&type=article&status=301&id=$1 break;
rewrite ^/([\w]+)\.api([/.](.*))?$ /spip.php?action=api_$1&arg=$3 break;
rewrite ^/[^\.]+(\.html)?$ /spip.php;
}
location /article {
rewrite ^/article([0-9]+)(\.html)?$ /spip.php?page=article&id_article=$1 break;
rewrite ^/(rubrique|article|breve|mot|auteur|site|agenda|backend|backend-breves|distrib|forum|ical|plan|recherche|sommaire|sommaire_texte)\.php3?$ /spip.php?page=$1 break;
}
location /breve {
rewrite ^/breve([0-9]+)(\.html)?$ /spip.php?page=breve&id_breve=$1 break;
rewrite ^/(rubrique|article|breve|mot|auteur|site|agenda|backend|backend-breves|distrib|forum|ical|plan|recherche|sommaire|sommaire_texte)\.php3?$ /spip.php?page=$1 break;
}
location /mot {
rewrite ^/mot([0-9]+)(\.html)?$ /spip.php?page=mot&id_mot=$1 break;
rewrite ^/(rubrique|article|breve|mot|auteur|site|agenda|backend|backend-breves|distrib|forum|ical|plan|recherche|sommaire|sommaire_texte)\.php3?$ /spip.php?page=$1 break;
}
location /auteur {
rewrite ^/auteur([0-9]+)(\.html)?$ /spip.php?page=auteur&id_auteur=$1 break;
rewrite ^/(rubrique|article|breve|mot|auteur|site|agenda|backend|backend-breves|distrib|forum|ical|plan|recherche|sommaire|sommaire_texte)\.php3?$ /spip.php?page=$1 break;
}
location /site {
rewrite ^/site([0-9]+)(\.html)?$ /spip.php?page=site&id_syndic=$1 break;
rewrite ^/(rubrique|article|breve|mot|auteur|site|agenda|backend|backend-breves|distrib|forum|ical|plan|recherche|sommaire|sommaire_texte)\.php3?$ /spip.php?page=$1 break;
}
location /rubrique {
rewrite ^/(rubrique|article|breve|mot|auteur|site|agenda|backend|backend-breves|distrib|forum|ical|plan|recherche|sommaire|sommaire_texte)\.php3?$ /spip.php?page=$1 break;
}
location /agenda {
rewrite ^/(rubrique|article|breve|mot|auteur|site|agenda|backend|backend-breves|distrib|forum|ical|plan|recherche|sommaire|sommaire_texte)\.php3?$ /spip.php?page=$1 break;
}
location /backend {
rewrite ^/(rubrique|article|breve|mot|auteur|site|agenda|backend|backend-breves|distrib|forum|ical|plan|recherche|sommaire|sommaire_texte)\.php3?$ /spip.php?page=$1 break;
}
location /backend-breves {
rewrite ^/(rubrique|article|breve|mot|auteur|site|agenda|backend|backend-breves|distrib|forum|ical|plan|recherche|sommaire|sommaire_texte)\.php3?$ /spip.php?page=$1 break;
}
location /distrib {
rewrite ^/(rubrique|article|breve|mot|auteur|site|agenda|backend|backend-breves|distrib|forum|ical|plan|recherche|sommaire|sommaire_texte)\.php3?$ /spip.php?page=$1 break;
}
location /forum {
rewrite ^/(rubrique|article|breve|mot|auteur|site|agenda|backend|backend-breves|distrib|forum|ical|plan|recherche|sommaire|sommaire_texte)\.php3?$ /spip.php?page=$1 break;
}
location /ical {
rewrite ^/(rubrique|article|breve|mot|auteur|site|agenda|backend|backend-breves|distrib|forum|ical|plan|recherche|sommaire|sommaire_texte)\.php3?$ /spip.php?page=$1 break;
}
location /plan {
rewrite ^/(rubrique|article|breve|mot|auteur|site|agenda|backend|backend-breves|distrib|forum|ical|plan|recherche|sommaire|sommaire_texte)\.php3?$ /spip.php?page=$1 break;
}
location /recherche {
rewrite ^/(rubrique|article|breve|mot|auteur|site|agenda|backend|backend-breves|distrib|forum|ical|plan|recherche|sommaire|sommaire_texte)\.php3?$ /spip.php?page=$1 break;
}
location /sommaire {
rewrite ^/(rubrique|article|breve|mot|auteur|site|agenda|backend|backend-breves|distrib|forum|ical|plan|recherche|sommaire|sommaire_texte)\.php3?$ /spip.php?page=$1 break;
}
location /sommaire_texte {
rewrite ^/(rubrique|article|breve|mot|auteur|site|agenda|backend|backend-breves|distrib|forum|ical|plan|recherche|sommaire|sommaire_texte)\.php3?$ /spip.php?page=$1 break;
}
location /resume {
rewrite ^/resume.php[3]? /spip.php?page=sommaire break;
}
location /page {
rewrite ^/page.php[3]? /spip.php break;
}
location /spip_cal {
rewrite ^/spip_cal\.php3?$ /spip.php?page=ical_prive break;
}
location /spip_rss {
rewrite ^/spip_rss\.php3?$ /spip.php?page=rss break;
}
location /robots {
rewrite ^/robots[.]txt$ /spip.php?page=robots.txt break;
}
location /favicon {
rewrite ^/favicon[.]ico$ /spip.php?page=favicon.ico break;
}
location /sitemap {
rewrite ^/sitemap[.]xml$ /spip.php?page=sitemap.xml break;
}
Voici la configuration SPIP utilisée par Tech-Nova pour gérer la pluprat des règles de rewrting des SPIP installés dans les sous-dossiers de la racine :
server {
# list of standard rules
# listen / server_name / client_max_body_size
# location / etc..
error_page 404 = @spip;
location @spip {
# SPIP handles everything
# "html" compatibility
# (I often remove this part)
rewrite ^/([^/]+)/rubrique([0-9]+)(\.html)?$ /$1/spip.php?page=rubrique&id_rubrique=$2&$args last;
rewrite ^/([^/]+)/article([0-9]+)(\.html)?$ /$1/spip.php?page=article&id_article=$2&$args last;
rewrite ^/([^/]+)/breve([0-9]+)(\.html)?$ /$1/spip.php?page=breve&id_breve=$2&$args last;
rewrite ^/([^/]+)/mot([0-9]+)(\.html)?$ /$1/spip.php?page=mot&id_mot=$2&$args last;
rewrite ^/([^/]+)/auteur([0-9]+)(\.html)?$ /$1/spip.php?page=auteur&id_auteur=$2&$args last;
rewrite ^/([^/]+)/site([0-9]+)(\.html)?$ /$1/spip.php?page=site&id_syndic=$2&$args last;
# short links
rewrite ^/([^/]*)/([1-9][0-9]*)$ /$1/spip.php?action=redirect&type=article&status=301&id=$2&$args last;
# standard files
rewrite ^/([^/]*)/robots\.txt$ /$1/spip.php?page=robots.txt last;
rewrite ^/([^/]*)/favicon\.ico$ /$1/spip.php?page=favicon.ico last;
rewrite ^/([^/]*)/sitemap\.xml$ /$1/spip.php?page=sitemap.xml last;
# Other SPIP custom urls
rewrite ^/([^/]*)/(.*)(\.html)?$ /$1/spip.php?url_propre=$2&$args last;
}
}
D’autres informations sont disponibles sur le Forum SPIP et surtout sur Contrib : Nginx-et-Spip qui renvoie à https://www.nginx.com/resources/wiki/start/topics/recipes/spip/
Article publié le 8 janvier 2022, et actualisé en janvier 2022 .
Répondre à cet article