Bonjour,

Voici mon besoin

J'ai un dossier www/public/index.php

J'ai d'autre dossiers qui son au même niveau que le dossier public.

Toutefois le le routeur de mon site est le fichier index.php qui se trouve dans le dossier public.

Et si j'ai bien compris, le fichier .htaccess, je dois le mettre au même niveau que le dossier public

Ma question est :

Quel code dois-je mettre dans mon fichier .htaccess pour que l'utilisateur qui arrive sur mon site soit automatiquement rediriger vers le fichier index.php qui se trouve dans le dossier public ?

5 réponses


Lartak
Réponse acceptée

Quelqu'un t'avait déja donné la réponse dans ton autre sujet :

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule    ^$    public/    [L]
    RewriteRule    (.*) public/$1    [L]
</IfModule>

Bonsoir.
Il est totalement inutile de créer un fichier .htaccess juste pour lui dire de pointer un fichier index.php dans le même dossier que lui.
Ce genre de fichier .htaccess n'est utile que pour les dossiers parents, dans le cas où ton serveur ne pointe pas directement dans le dossier voulu.

Devdeb22
Auteur

En faite mon fichier .htaccess se trouvera à ce niveau

www/.htaccess

et mon fichier index.php se trouvera a ce niveau www/public/index.php

comment faire dans ce cas là ?

Devdeb22
Auteur

Merci, effectivement, j'aivais déjà eu cette réponse, c'est juste que n'arrivait pas très bien à m'expliquer à moi-même le fonctionnement.

C'est la preuve pour moi que j'ai pas encore compris le fonctionnement du .htaccess

Un grand merci, je vais revoir le cours du rewriting, puis revenir sur le la question pour me la réexpliquer à nouveau.

Merci Lartak

Désolé pour le dérangement !

De rien, c'est un exemple basique, tu peux agrémenter le fichier .htaccess avec plusieurs règles et notamment des conditionnelles, mais le mieux reste quand même de les spécifier au niveau d'un virtual host dans le fichier de configuration.
Il faut quand même savoir que si un jour tu n'utilises plus apache comme serveur web, mais nginx par exemple, ton fichier .htaccess ne pourra pas te servir car nginx n'interprète pas les fichiers .htaccess.