IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

Alias et RewriteBase ne font pas bon ménage


Sujet :

Apache

  1. #1
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut Alias et RewriteBase ne font pas bon ménage
    Bonjour,

    Je travaille sur un projet dont les sources sont à l’extérieur du document root d'apache (dans mon workspace Eclipse).
    J'ai donc créé des alias pour pouvoir les tester sur mon environement local, jusque là tout va bien.

    ça se corse quand je tente d'utiliser la réécriture d'URL, je dois utiliser la directive RewriteBase en spécifiant le nom de l'alias pour que ça fonctionne, or je ne veux pas mettre cette règle dans le .htaccess du projet (ça me gonfle de devoir l'enlever à chaque fois que je dois faire un commit) car cela ne concerne que ma conf locale et ne dois pas être présent dans le repos du projet.

    Bref, mon alias est de la forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Alias /projet "H:/Workspace/projet/www" 
     
    <Directory "H:/Workspace/projet/www">
        	Options Indexes FollowSymLinks MultiViews
        	AllowOverride all
            Order Deny,Allow
    	Deny from all
    	Allow from 127.0.0.1
    </Directory>
    Mes .htaccess:
    H:/Workspace/projet/www/.htaccess
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteRule ^$ application/webroot/     [L]
        RewriteRule (.*) application/webroot/$1 [L]
    </IfModule>
     
    php_flag short_open_tag 1
    php_flag file_uploads 1
    php_value upload_max_filesize 10M
    php_value post_max_size 10M
    H:/Workspace/projet/www/application/.htaccess
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteRule ^$   webroot/   [L]
        RewriteRule (.*) webroot/$1 [L]
    </IfModule>
    H:/Workspace/projet/www/application/webroot/.htaccess
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !favicon.ico$
        RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
    </IfModule>
    Si je mets la directive RewriteBase dans les 3 projets, tout va bien et je peux utiliser mon alias naturellement.
    Si j'essaie de mettre la directive RewriteBase dans la directive <Directory> (pourtant possible d'après la doc), j'obtiens une belle erreur 404 (URL /Workspace/project/www/application/webroot/ was not found).

    Quelle est la solution à ce problème ?

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Pourquoi tu configures un alias ? Pourquoi ne pas changer le document root ?

  3. #3
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    C'est ce que j'ai fait avec un VirtualHost;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Listen 8080
     
    <VirtualHost *:8080>
    	DocumentRoot H:/Workspace/project/www/
    	ServerName project.test
    </VirtualHost>
     
    <Directory "H:/Workspace/project/www/">
    	Options Indexes FollowSymLinks MultiViews
    	AllowOverride all
            Order Deny,Allow
    	Deny from all
    	Allow from 127.0.0.1
    </Directory>
    ça fonctionne plutôt bien, mais quid si je dois en faire un vingtaine ?

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Tu ajoutes la ligne suivante qui manque :
    et tu crées un VH par projet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <VirtualHost *:8080>
    	DocumentRoot H:/Workspace/project2/www/
    	ServerName project2.test
    </VirtualHost>
     
    <VirtualHost *:8080>
    	DocumentRoot H:/Workspace/project3/www/
    	ServerName project3.test
    </VirtualHost>
    Autre solution beaucoup plus adaptée : utiliser le mass virtual hosting :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <VirtualHost *:8080>
    	VirtualDocumentRoot H:/Workspace/%1/www/
    	ServerName project.test
    </VirtualHost>
    A mettre une seule fois pour toute à la place du VH actuel. %1 sera remplacé par le premier token du nom demandé (projectXX.test => %1 = projectXX).

  5. #5
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Je vois, c'est une bonne idée en effet.

    Juste une question, quelles seront les URL pour accéder aux différents projets ? Vais-je devoir configurer le fichier host pour chaque domaine ?

  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Citation Envoyé par Benjamin Delespierre Voir le message
    Vais-je devoir configurer le fichier host pour chaque domaine ?
    Oui mais visiblement tu l'as déjà fait, donc ça ne devrait pas présenter de difficulté

  7. #7
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Ok merci pour ces détails. Problème résolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [DisplayTag] Tri et pagination ne font pas bon ménage
    Par tiboudchou dans le forum Taglibs
    Réponses: 4
    Dernier message: 31/03/2010, 12h22
  2. rich:calendar, DIV et IE ne font pas bon ménage
    Par chotana dans le forum JSF
    Réponses: 1
    Dernier message: 20/04/2009, 17h16
  3. C++ et VB6 ne font pas bon ménage!
    Par Tuizi dans le forum C++
    Réponses: 6
    Dernier message: 18/07/2008, 10h03
  4. Le wifi et Club Internet ne font pas bon ménage!
    Par Ylias dans le forum La taverne du Club : Humour et divers
    Réponses: 5
    Dernier message: 20/08/2007, 10h30
  5. Réponses: 2
    Dernier message: 12/08/2007, 15h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo