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:
J'espère avoir été clair dans mes explications, pas facile à présenter
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
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
Partager