logo

Types de blocs supplémentaires (EBT) – Nouvelle expérience de Layout Builder❗

Types de blocs supplémentaires (EBT) – types de blocs stylisés et personnalisables : diaporamas, onglets, cartes, accordéons et bien d’autres. Paramètres intégrés pour l’arrière-plan, la boîte DOM, les plugins JavaScript. Découvrez dès aujourd’hui le futur de la création de mises en page.

Démo des modules EBT Télécharger les modules EBT

❗Types de paragraphes supplémentaires (EPT) – Nouvelle expérience Paragraphes

Types de paragraphes supplémentaires (EPT) – ensemble de modules basé sur les paragraphes analogiques.

Démo des modules EPT Télécharger les modules EPT

Défilement

Résoudre les problèmes liés aux URL propres dans Drupal 8

05/07/2025, by Ivan

Les bases

Dans Drupal 8, les URL propres sont activées par défaut et ne peuvent pas être désactivées. Cependant, le module de réécriture doit être activé sur votre serveur web.

Vérifiez la barre d’adresse de votre navigateur. Les URL de votre site ne doivent pas contenir « ?q= » dans l’URL.

Exemple d’URL propres correctes :

http://www.example.com/node/83

Exemple d’URL propres qui ne fonctionnent pas :

http://www.example.com/?q=node/83

Des instructions supplémentaires existent pour configurer les URL propres selon différents systèmes, tels qu’Apache, WAMP, XAMPP ou IIS.

Configuration du serveur pour les URL propres

Vous pouvez en apprendre plus sur les autres exigences serveur web.

Configuration serveur pour URL propres sur serveur dédié avec httpd.conf

Pour activer les URL propres sur un serveur dédié, suivez ces étapes :

1. Activez mod_rewrite pour Apache. Contactez votre hébergeur ou consultez la documentation Apache sur mod_rewrite pour savoir comment faire. Assurez-vous que mod_rewrite est bien activé dans votre installation Apache.

Pour vérifier si mod_rewrite est disponible, exécutez en ligne de commande :

apache2ctl -M

Selon le système, cette commande peut être :

apachectl -M

ou

httpd -M

2. Dans la sortie, vérifiez que rewrite_module est activé.

Si mod_rewrite n’apparaît pas, vous devez le compiler ou le rendre disponible comme module chargé. Généralement, ajoutez dans votre fichier de configuration Apache :

LoadModule rewrite_module modules/mod_rewrite.so
AddModule mod_rewrite.c

Décommentez la ligne AddModule si elle est commentée. Vous pouvez aussi tenter la commande :

a2enmod rewrite

Notez que ces commandes peuvent varier selon OS et version d’Apache. Consultez la documentation Apache adaptée.

N’oubliez pas de redémarrer Apache pour appliquer les changements.

3. Trouvez le fichier de configuration Apache approprié pour votre site (httpd.conf, vhost.conf, apache2.conf, ou fichier spécifique à votre site). Ils se situent souvent dans /etc/httpd/conf, /etc/apache2, etc. Utilisez :

find /etc -name httpd*  ou  find /etc -name apache2*

si besoin pour localiser ces fichiers.

Si vous n’avez pas les droits d’écriture sur ces fichiers, et que les URL propres ne fonctionnent pas, demandez de l’aide à votre administrateur système ou hébergeur. Vous pouvez néanmoins consulter ces fichiers pour aider au diagnostic.

4. Intégrez les directives Drupal dans le fichier de configuration. Voir les instructions pour inclure les directives Drupal. Par exemple, le fichier .htaccess de Drupal 8 contient :

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ index.php [L]

Ou cet exemple Debian 8 + Apache2 + ISPConfig :

<Directory /var/www/clients/*/*/web/>
  RewriteEngine on
  RewriteBase /
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</Directory>

Assurez-vous d’utiliser le .htaccess correspondant à votre version Drupal (8.x).

Note : si vous préférez ne pas placer les règles dans le fichier de config Apache, vous pouvez utiliser le fichier .htaccess de Drupal (comme sur un hébergement mutualisé). Assurez-vous que la directive AllowOverride est bien définie :

AllowOverride All
AccessFileName .htaccess

Pour en savoir plus, consultez cette présentation détaillée du .htaccess Apache et les exemples de directive AllowOverride d’Apache 2.

Attention à MultiViews : Apache supporte une fonction « MultiViews » permettant d’accéder aux fichiers sans extension (ex : valuation.txt accessible via /valuation). Bien que pratique, MultiViews peut causer des conflits avec les URL propres de Drupal. Si vous ne maîtrisez pas, désactivez MultiViews pour éviter les problèmes. Cette option n’est pas activée par défaut sur Apache.

Configuration serveur pour URL propres sur hébergement mutualisé avec .htaccess

Drupal fournit un fichier .htaccess standard suffisant pour activer les URL propres. Ce fichier commence par un point, il peut donc être masqué. Vérifiez sa présence dans votre installation avec la commande :

ls -a

Si le fichier est présent mais que les URL propres ne fonctionnent pas, essayez les conseils de dépannage ci-dessous. Sinon, contactez votre hébergeur.

Dépannage

Vérifiez que .htaccess est utilisé

Apache doit être configuré pour lire et appliquer les règles du fichier .htaccess. Par défaut, cela peut être désactivé, mais la plupart des hébergeurs l’activent. La directive AllowOverride All permet cette activation.

Pour tester, ajoutez temporairement une ligne invalide dans .htaccess. Votre site doit alors afficher une erreur 500 lors du chargement. Retirez la ligne après le test.

Si le site ne casse pas, .htaccess est ignoré. Vous devrez activer cette option dans httpd.conf ou via votre hébergeur.

Configurer RewriteBase

La directive principale à modifier est RewriteBase, dans .htaccess ou httpd.conf selon l’emplacement des règles.

Par défaut, RewriteBase est commenté dans .htaccess, et fonctionne dans de nombreuses configurations.

Si vous avez des soucis, et que votre Drupal est installé dans un sous-dossier, par exemple /var/www/monsite, définissez :

RewriteBase /monsite

Parfois, RewriteBase / peut suffire.

Variable $base_url

Vous devrez peut-être définir manuellement la variable $base_url dans settings.php si elle n’est pas configurée. Ceci est connu pour poser problème avec certains serveurs utilisant FastCGI (bug PHP #19656).

Multi-site

RewriteBase fonctionne si votre Drupal sert un seul site, ou plusieurs sites dans un même sous-répertoire.

RewriteBase /

fonctionne sur :

http://www.example.com/
http://www.example2.com/
http://www.example3.com/

RewriteBase /monsite

fonctionne sur :

http://www.example.com/monsite
http://www.example2.com/monsite
http://www.example3.com/monsite

Mais si vos sites sont dans différents sous-répertoires, RewriteBase ne fonctionnera pas. Vous devez créer une règle spécifique pour chaque sous-répertoire. Par exemple, si votre Drupal sert :

http://www.example.com/
http://www.example.com/monsite

Pour activer les URL propres pour les deux, ajoutez avant les règles existantes :

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/monsite/
RewriteRule ^ /monsite/index.php [L]

Emplacement du fichier index.php

Selon la configuration, vous devrez peut-être modifier la règle :

RewriteRule ^ index.php [L]

en remplaçant index.php par le chemin relatif vers index.php de votre Drupal. Par exemple, si votre site est accessible via http://example.com/subdir/, utilisez :

/subdir/index.php

ou /index.php si votre Drupal est à la racine. Ceci dépend de la configuration serveur.

Générez des URL conviviales avec le module Path

Les URL propres génèrent des liens comme http://www.example.com/node/83. Pour remplacer la partie « node/## » par un alias plus lisible (ex. « news/mon-article »), activez le module Path. Voir la page de documentation du module Path pour plus d’infos.