Aller au contenu principal

Drupal : rediriger votre site vers un sous répertoire

Dans les hebergements mutualisés le domaine principale pointe sur /public_html. Ce comportement par defaut peu poser quelques soucis si votre installation de Drupal separe index.php et vendor.


Pour regler le probleme nous allons prendre un cas pratique.

Nous avons une installation Drupal qui suit la logique suivante:

  •  public
  •  public/web/index.php
  •  public/vendor/

Nous compressons notre le dossier public et le mettons le dossier public_html sur le serveur. Ensuite on dezzipe et on a : public_html/public/.

Pour acceder au site : il faut ecrire : mon.domaine.com/public/web, 

Pour pouvoir acceder au site directement à partir du domaine nous devons :

- Ajouter à la racine du serveur un fichier .htaccess

RewriteEngine on
# Rediregiger vers un sous parrent.
RewriteCond %{HTTP_HOST} ^(www\.)?mondomaine\.com$
RewriteCond %{REQUEST_URI} !core/authorize.php
RewriteRule !^public/web/  /public/web%{REQUEST_URI}   [L]

- Ajouter la ligne suivante à la fin du fichier settings.php

# Pour la redirection.
if (isset($GLOBALS['request'])) {
  if ('/public/web/index.php' === $GLOBALS['request']->server->get('SCRIPT_NAME')) {
    $GLOBALS['request']->server->set('SCRIPT_NAME', '/index.php');
  }
  elseif ($GLOBALS['request']->server->get('SCRIPT_URL') === '/core/authorize.php') {
    $GLOBALS['request']->server->set('SCRIPT_FILENAME', '/public/web/core/index.php');
  }
}
# Vous pouvez également utiliser le chemins absolue complet
if (isset($GLOBALS['request']) and '/public/web/index.php' === $GLOBALS['request']->server->get('SCRIPT_NAME')) {
  $GLOBALS['request']->server->set('SCRIPT_NAME', '/index.php');
}





 

Profile picture for user admin Stephane K

Écrit le

Il y'a 1 year
Modifié
Il y'a 9 months
Loading ...
WhatsApp
Support Habeuk : +237 694 900 622
WhatsApp Send