Installation Yakforms sur debian 11 + apache 2

Bonjour à la communauté.
Je viens de faire une fraiche installation de Yakforms sur un tout beau tout neuf debian 11 + Mariadb et apache 2.
J’ai l’impression que j’ai un problème de conf de base de drupal car j’ai des urls qui me renvoie une erreur 404.
Par exemple :
forms.xxxx.fr/user > Erreur 404
forms.xxxx.fr/?q=user/ > fonctionne

etc …

Voici mon vhost

<VirtualHost *:80>

        ServerName forms.xxxx.fr
        serverAdmin admin@xxxx.fr

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/forms/

    <Directory /home/www/html/forms/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
 
</VirtualHost>

Merci de votre aide

Il manque très certainement des règles de réécritures d’URL Apache qui n’existent pas. Lesquelles sont à créer ? Aucune idée, je ne suis pas calé Yakforms.

Oui sans doute, je n’arrive pas a activer les URL simplifiée dans Drupal … pourtant j’ai bien activé le rewriting sur Apache, il y a bien le .htaccess de Drupal, franchement je ne vois pas …

Salut

Sur la config nginx dans la procédure d’installation, on peut lire ceci

    location / {
      autoindex on ;
      autoindex_exact_size off;
      try_files $uri index.html /index.php?$query_string;
    }

Il me semble que le try_files serait quelque chose apparent à une réécriture. Si je ne m’abuse, cela veut dire (en prenant l’exemple de /user):

  1. Tenter l’URL suivie de /index.html (dans ce cas-ci /user/index.html)
  2. Autrement, utiliser index.html directement
  3. Sinon, utiliser /index.php?$query_string (dans ce cas-ci, $query_string serait vide et donc cela reviendrait à dire /index.php)

Mais pour Apache2, comme dit @Framasky, cela doit être fait autrement. Vu que Yakforms est basé sur Drupal, j’ai trouvé un site où il est écrit une formulation de réécriture qui me semble correcte. Essaie de mettre ceci juste avant </VirtualHost> à la fin.

     <Directory /var/www/html/forms/>
            RewriteEngine on
            RewriteBase /
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*) index.php [PT,L]
    </Directory>
</VirtualHost>

La première ligne active le moteur de réécriture, la seconde définit la base de la réécriture. La 3ème, stipule qu’il ne faut passer à l’étape de réécriture qu’à la condition que le chemin de la ressource ne correspondent pas à un nom de fichier réel. Et la quatrième procède à la réécriture vers index.php.

Ne pas oublier de faire sudo a2enmod rewrite pour activer l’extension de réécriture dans Apache2 et de redémarrer le service Web

En espérant que cela puisse t’être utile

1 Like

Bonjour,

Tu as été super utile, ca fonctionne parfaitement, je te remercie.

Jérémie