Dokuwiki et ferme, astuces

Une seule ferme pour plusieurs domaines

Ça marche sur le même serveur, hein… mais ça marche.

Arborescence sur le serveur :

- var
  - www
    - mondomaine
      - dokuwiki
      - farm
        - lapin
        - poule

Ici le dokuwiki cœur est /var/www/mondomaine/dokuwiki. On le trouve à l'adresse https://mondomaine.com/dokuwiki si nécessaire ( mondomaine étant la racine du site). La ferme est aussi paramétrée pour servir “lapin” sur le même domaine, à l'adresse https://mondomaine.com/lapin.

Le code dans la config d'Apache :

<VirtualHost *:80>
        ServerName mondomaine.com
 
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/mondomaine/
 
        ErrorLog ${APACHE_LOG_DIR}/error_mondomaine.log
        CustomLog ${APACHE_LOG_DIR}/access_mondomaine.log combined
 
        Alias /lapin /var/www/mondomaine/farm/lapin
 
        RewriteEngine On
        RewriteRule ^/farm/ - [R=404]
 
        <Directory /var/www/mondomaine/ >
                DirectoryIndex index.html index.htm index.php
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>

La réécriture sur “farm” évite de trouver les divers wiki en allant dans le dossier “farm”. Ça limitera les erreurs d'indexation des bots, aussi.

L'animal poule, lui, est disponible sur un autre nom de domaine. On devrait y accéder directement via https://poule.autredomaine.com.

Son vhost associé :

<VirtualHost *:80>
        ServerName poule.autredomaine.com
 
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/mondomaine/
 
        RewriteEngine On
        RewriteRule ^/?([^/]+)/(.*)  /dokuwiki/$1?animal=poule [QSA]
        RewriteRule ^/?([^/]+)$      /dokuwiki/?animal=poule [QSA]
 
        ErrorLog ${APACHE_LOG_DIR}/error_poule.log
        CustomLog ${APACHE_LOG_DIR}/access_poule.log combined
 
        <Directory /var/www/mondomaine/ >
                DirectoryIndex index.html index.htm index.php
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>

Et en principe tout fonctionne !

Tycho‎: au passage, ton .htaccess est le truc qui fait que https://mondomaine.com/<animal>/ fonctionne. Tout animal que tu mets après est appelé. Si tu veux vraiment bien séparer, il faut supprimer le .htaccess et rajouter les RewriteRule dans la conf de mondomaine.com, ou alors, si tu veux toujours pouvoir accéder à certains animaux depuis https://mondomaine.com/<animal>/ il est possible d'ajouter un bout de conf pour interdir certains animaux.