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 :

Architecture de fichiers, htaccess et sous domaine


Sujet :

Apache

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Architecture de fichiers, htaccess et sous domaine
    Bonjour à tous,

    Utilisant les services d'hébergement mutualisé d'OVH, mon site était architecturé (schématiquement) comme suit :

    controllers/
    views/
    layout/
    lib/
    www/
    www/index.php
    www/.htaccess
    www/media
    www/media/css
    www/media/js
    www/media/img

    Dans mon .htaccess, je redirige toutes les URL vers index.php et c'est lui qui gère tout le système MVC. Ce qui permet de n'avoir que les ressources publiques de type image CSS et JS accessibles dans le répertoire racine www.

    A présent dans mon offre je peux utiliser des sous domaines, et j'ai un sous domaine test.monsite.com.
    Donc j'ai réorganisé mes fichiers pour avoir :

    test/
    www/
    www/controllers/
    www/views/
    www/layout/
    www/lib/
    www/index.php
    www/.htaccess
    www/media
    www/media/css
    www/media/js
    www/media/img

    Avec dans chacun des dossiers (test et www) tous les fichiers du projet correspondant, par exemple pas de fichiers extérieurs à www comme c'était avant (lib, layout, etc.).

    Donc je suis obligé de mettre index.php dans www, au même niveau que les autres répertoires.

    Le problème c'est qu'en tapant www.monsite.com/controllers, mon système catche bien une 404, mais le serveur ajoute automatiquement un slash à la fin de l'URL pour donner www.monsite.com/controllers/, ce qui avertit l'utilisateur que le dossier existe réellement...

    Je tiens absolument à conserver cette architecture :
    www/
    test/

    Pour le sous domaine, je pourrais configurer un sous répertoire test/public/, mais pour le domaine principal, le répertoire est www/ et pas autre chose

    Mon .htaccess:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SetEnv REGISTER_GLOBALS 0
    SetEnv PHP_VER 5
     
    Options -Indexes
    Options -Multiviews
    Options +FollowSymLinks
     
    RewriteEngine On
    RewriteCond %{REQUEST_URI} !^/media/.*$
    RewriteCond %{REQUEST_URI} !^/favicon.*$
    RewriteCond %{REQUEST_URI} !^/index.php
    RewriteRule ^(.*)$ index.php/$1
    J'espère avoir été clair dans mes explications, pas facile à présenter

    Est-ce qu'on peut régler ça avec le .htaccess, ou alors une autre architecture de fichiers (en conservant www/ et test/ contenant chacun leurs propres fichiers) ?

    Merci

  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
    On peut demander à mod_rewrite de renvoyer une erreur 404 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{REQUEST_URI} ^/(controllers|views|...)
    RewriteRule .* - [R=404,L]
    A mettre en tant que première règle.

    Mais je ne sais pas si ça marchera car il se peut que le module Apache qui ajoute le / à la fin pour les répertoires et fait la redirection soit appelé avant mod_rewrite. Donc, si ça ne marche pas, est-ce que cette fonctionnalité d'ajouter un / à la fin des répertoires est importante pour toi ? On peut la désactiver ainsi :

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci, j'ai appliqué le DirectorySlash Off et modifié un peu mon .htaccess, ça fonctionne.

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

Discussions similaires

  1. Fichier .htaccess et sous-domaine
    Par Invité dans le forum Apache
    Réponses: 11
    Dernier message: 04/04/2013, 01h13
  2. [.htaccess] Accès sous-domaine
    Par Blinkers dans le forum Apache
    Réponses: 3
    Dernier message: 18/10/2011, 23h17
  3. htaccess et sous-domain
    Par gotcha5832 dans le forum Apache
    Réponses: 8
    Dernier message: 13/07/2011, 20h09
  4. Réponses: 1
    Dernier message: 26/01/2009, 20h55

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