DataLife Engine utilise des URL conviviales (SEF) pour l’affichage des actualités, ce qui permet d’ajouter le sujet de l’article ou tout autre texte dans l’URL du navigateur. Grâce à cela, l’indexation du site par les moteurs de recherche est meilleure, ce qui attire davantage de visiteurs depuis les moteurs de recherche. Pour utiliser les URL conviviales, le module mod_rewrite doit être installé sur votre serveur si Apache est utilisé comme serveur PHP principal. Si votre serveur ne le prend pas en charge, vous pouvez désactiver cette fonction dans les paramètres du script.
Pour Apache :
Si vous utilisez Apache comme serveur PHP, le fichier .htaccess suivant doit être présent à la racine de votre site (il est fourni avec la distribution DLE) :
DirectoryIndex index.php
DirectoryIndex index.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.(php|jpg|jpeg|gif|ico|png|svg|webp|avif|js|css|mp3|ogg|mp4|mkv|avi|zip|rar|woff|woff2)(\?|$) - [L,NC,R=404]
RewriteRule ^sitemap.xml$ uploads/sitemap.xml [L]
RewriteRule ^google_news.xml$ uploads/google_news.xml [L]
RewriteRule ^static_pages.xml$ uploads/static_pages.xml [L]
RewriteRule ^category_pages.xml$ uploads/category_pages.xml [L]
RewriteRule ^tags_pages.xml$ uploads/tags_pages.xml [L]
RewriteRule ^news_pages(\d*?).xml$ uploads/news_pages$1.xml [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>
Pour Nginx :
Si vous utilisez Nginx comme serveur PHP, les lignes suivantes doivent être présentes dans le bloc location de la configuration de votre domaine :
location / {
location ~ ^/backup/ {
deny all;
return 403;
}
location ~ ^/engine/ {
deny all;
return 403;
}
location ~ ^/public/.*\.ph(p\d*|tml)$ {
deny all;
return 403;
}
location ~ ^/language/ {
deny all;
return 403;
}
location ~ ^/templates/.*\.(ph(p\d*|tml)|tpl)$ {
deny all;
return 403;
}
location ~ ^/uploads/.*\.ph(p\d*|tml)$ {
deny all;
return 403;
}
location ~ ^/uploads/files/.*\.(avi|divx|mp3|ogg|flac|aac|mp4|wmv|m4v|m4a|mov|mkv|webm|m3u8)$ {
allow all;
}
location ~ ^/uploads/files/ {
deny all;
return 403;
}
rewrite "^/sitemap.xml$" /uploads/sitemap.xml last;
rewrite "^/google_news.xml$" /uploads/google_news.xml last;
rewrite "^/static_pages.xml$" /uploads/static_pages.xml last;
rewrite "^/category_pages.xml$" /uploads/category_pages.xml last;
rewrite "^/tags_pages.xml$" /uploads/tags_pages.xml last;
rewrite "^/news_pages(\d*?).xml$" /uploads/news_pages$1.xml last;
# votre reste de configuration du domaine
try_files $uri $uri/ /index.php?$args;
}
À la place des points, vous devez insérer vos paramètres supplémentaires pour le fonctionnement du domaine, les gestionnaires PHP et les autres réglages. Pour configurer Nginx, nous vous recommandons de vous adresser à votre administrateur système ou au support de votre hébergeur.
Personnalisation de la forme des liens et des règles :
Vous pouvez modifier et configurer la forme des URL conviviales dans la section correspondante du panneau d’administration. Nous déconseillons toutefois de modifier cette structure aux utilisateurs inexpérimentés. Pour eux, nous recommandons de choisir l’une des trois variantes prédéfinies dans les paramètres du script.
Si vous décidez malgré tout de modifier vous-même la forme des liens ou d’ajouter vos propres règles, vous devez respecter plusieurs règles. Par défaut, dans le modèle de recherche, la syntaxe utilisée signifie par exemple que {foo} indique une correspondance à nommer foo, tandis que la recherche elle-même correspond à l’expression régulière [^/]+, c’est-à-dire toute suite de caractères jusqu’au premier slash. Pour configurer le modèle auquel l’expression recherchée doit correspondre, vous pouvez spécifier un modèle personnalisé, par exemple {bar:[0-9]+}. Quelques exemples :
/user/{id:\d+}/ correspond à /user/42, mais pas à /user/xyz
/user/{name}/ correspond à /user/foobar/, mais pas à /user/foo/bar
/user/{name:.+}/ correspond à /user/foo/bar dans son intégralité.
Les valeurs issues du modèle de recherche sont affectées aux noms indiqués. Dans ces exemples, vous pouvez transmettre les valeurs trouvées dans le lien réel via les balises {id} et {name}. Le script recevra alors respectivement les valeurs $_GET['id'] et $_GET['name'].
Les paramètres personnalisés du modèle de recherche dans une URL conviviale ne peuvent pas utiliser de groupes capturants, car ils sont déjà eux-mêmes des groupes. Par exemple, {lang:(en|de)} ne peut pas être utilisé, car () est un groupe de recherche. Vous devez à la place utiliser le modèle {lang:en|de} ou {lang:(?:en|de)}.
Attention : dans le lien réel de l’URL conviviale, si vous modifiez les règles standards de DLE, vous ne devez transmettre que les variables que DLE comprend. Par exemple, pour afficher une actualité complète, DLE comprend l’URL /index.php?newsid=123, où la variable newsid reçoit une valeur numérique. Quelle que soit la manière dont vous modifiez le modèle d’URL conviviale, vous devez dans tous les cas transmettre à l’URL réelle la variable newsid avec une valeur numérique.