J'ai du mal à trouver la bonne configuration pour le fichier .htaccess.
J'ai créé un petit site en utilisant le modèle mvc et toutes les urls ressemblent à site.com/appname/public/index.php?param=page. J'essaie de faire en sorte que toutes les urls soient écrites comme site.com/page. J'ai cherché dans la documentation d'Apache mais je ne comprends toujours pas...
C'est ce que j'ai maintenant dans le répertoire /public :
Options -MultiViews
RewriteEngine on
RewriteBase /appname/public/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
Et voici ce que j'ai dans le répertoire racine :
RewriteEngine On
RewriteRule ^(.*)$ appname/public [R=301,L]
Cela fonctionne bien, il redirige vers index.php (dans le répertoire /public) et réécrit toutes les urls en site.com/appname/public/page.
Maintenant, j'essaie d'en avoir plus et je voudrais cacher aussi /appname/public, mais je ne comprends pas comment. Dois-je combiner plus de RewriteRule pour correspondre à "/appname/public" ?
Des suggestions ?
Merci beaucoup !
EDIT : plus d'informations sur ce que j'essaie d'obtenir.
J'ai une arborescence de répertoires comme :
htdocs
|---appname
|
|---app
| |---other_dirs
| |---other_files
|
|---public
|---some_dirs/file
|--- index.php
Pour accéder à mes pages, je dois faire pointer le navigateur vers index.php et passer une valeur GET. Ainsi, toutes les urls devraient ressembler à :
site.com/appname/public/index.php?val=page
Voici ce que j'ai en ce moment (avec les règles ci-dessus)
site.come/appname/public/page
Et c'est ce que j'essaie d'obtenir...
site.com/page
Je ne comprends pas comment réécrire/masquer aussi la partie du milieu, en gardant la dernière avec la structure "?url=$1" ("url" sera traité dans un contrôleur, analysé et ainsi de suite).
J'espère que c'est plus clair.
Merci ! :)