Bonjour à tous, imaginons que tout mon site web soit dans un dossier "public/"

En utilisant un .htaccess, on peux faire en sorte que la racine soit redirigé vers le dossier public :

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/
RewriteRule (.*) http://localhost:8888/CharmedPlumeProduction/public [R=301,L]
</IfModule>

Mais ensuite, on voit quand même dans l'url : url.com/public

Comment faire en sorte de cacher ça, pour que ça donne :

www.url.com/login // par exemple

// Tout en restant dans le dossier public

Histoire de cacher l'arborescence du site

3 réponses


Salut ToinouPHP,

Je pense que tu devrais faire comme la plupart des frameworks à savoir :

  • côté Apache, rediriger toutes les requêtes vers public/index.php
  • côté PHP, lire le path (exemple quand tu tapes http://tonsite.com/path/to/your/action, tu lis " /path/to/your/action " et tu renvoies vers la bonne action)

Si c'est pas clair, je peux reprendre mes explications :)

Je veux bien un exemple ! Haha
J'apprend le MVC mais pour l'instant, je galère un peu

Si tu regardes la 2ème config de ce paragraphe : https://symfony.com/doc/current/setup/web_server_configuration.html#apache-with-mod-php-php-cgi (celle qui contient 36 lignes). Tu vois :

DocumentRoot /var/www/project/public
DirectoryIndex /index.php

Toutes requêtes vont donc taper sur le fichier " index.php " et dans ce fichier fais un var_dump($_SERVER).

Ensuite tu testes une URL au hasard : " http://localhost:8888/your-project/public/index.php/je/teste/une/url " et tu verras que dans ton dump tu auras - de mémoire - un $_SERVER['PATH_INFO'] = /je/teste/une/url et tu peux jouer avec ça pour faire les redirections (à partir de ton PHP).

Pareil, si c'est pas clair, je peux reprendre :)