Supprimer nom de dossier racine de l'URL via .htaccess

Bonjour à tous

Après moultes recherches et essais, j’ai toujours pas trouvé comment réécrire l’url de mon site en supprimant le nom du dossier racine.

Pouvez vous m’écrire une règle générale pour que ceci :
http://www.monsite.com/views/dossiers/pages,
ressembles à cela
http://www.monsite.com/dossiers/pages

En gros, tout mon site se trouve dans un dossier views à la racine, mais je ne veux pas qu’on le voit dans l’url.

MERCIIII :slight_smile:

Pourquoi ne pas changer le DocumentRoot d’Apache pour faire pointer sur le dossier views ?

Sinon, dans les autres choix, faut interdire l’accès au dossier root et faire des alias (tu peux faire des regexp via AliasMatch).

ok je vais regarder ca.

Sinon moi j’avais vu des trucs tout bete comme :

RedirectMatch 301 /blog(.*) http://www.askapache.com/$1

mais ca marche pas :confused:
Edité le 15/03/2012 à 22:33

Lis la doc : httpd.apache.org…

Ce n’est pas trop ce que tu veux. Là, ça fait une redirection, ce qui n’est pas top vu que tu dis en gros au client “la ressource qui était là, elle n’est plus là, mais là”.

Imagines que tu te pointes à l’administration, guichet 478, qu’on te dise “ah mais c’est le guichet 997”, bah du coup t’as plus qu’à chercher ce guichet :slight_smile:

Oh, et si tu as plein contrôle de ton domaine (ie: hébergement dédié versus mutualisé), tu as peut-être des configurations au niveau du serveur qui t’empêchent de mettre ce que tu veux dans l’htaccess.

Ok merci pour les infos. Mais je suis loin d’etre expert en htaccess, encore moins en regex et donc je suis pas sur d’y arriver.

Si ma demande est relativement simple, pourrais-tu me donner la Rule htaccess toute faite :slight_smile: ? ca m’aiderai beaucoup.

merci merci merci

Je n’ai pas touché à Apache depuis un bout de temps, donc non.

Mais un truc dans ce genre devrait fonctionner :

AliasMatch (.*) /chemin/views/$1 

Par contre, vu que c’est un htaccess, tu as des restrictions…

J’ai trouvé un code qui redirige tel que je le voulais

RewriteEngine on

RewriteCond %{REQUEST_URI} !^/views/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /views/$1

Il reste un problème :

www.monsite.com/dossier/ fonctionne bien
www.monsite.com/dossier affiche la même page, MAIS à redirigé l’url vers www.monsite.com/views/dossier/, ce qui revient à mon problème de départ.

Une idée mon chère ? :smiley: