- Modifié
J'ai voulu dépoussiérer quelques régles de réécriture depuis un .htaccess qui fonctionnait trés bien depuis 2ans...
Et poufpouf... dés le premier changement plus aucune régle ne passe.
J'ai donc repris tout à zéro avec un .hataccess des plus simple.
Mon objectif étant le suivant :
Sachant que mon site est à cette adresse physique : /var/www/html/monsite/
On y accéde par l'url : http://localhost/monsite/
Jusque là tout va bien mon site est accéssible.
Je souhaite simplement que tout ce qui se trouve derrière l'url du site soit renvoyé en get via la variable &url=
Donc ce qui apparait dans la barre d'adresse comme :
http://localhost/monsite/TOUT/LE/RESTE/ENVOYÉ/DANS/UNE/VARIABLE
doit être réécrit via le .htaccess en :
http://localhost/monsite/index.php?url=TOUT/LE/RESTE/ENVOYÉ/DANS/UNE/VARIABLE
Mon fichier index.php vérifie simplement si on récupére bien quelque chose dans $_GET['url'].
Et voici les différents cas qui se présentent.
Si je tape dans le navigateur les urls :
Voici le .htaccess qui fait défaut se trouvant dans /var/www/html/monsite/:
Et je précise que j'ai bien configuré apache avec "httpd.conf" informant "AllowOverride All" pour "/var/www/html", ainsi que le module rewrite d'apache bien chargé.
Et poufpouf... dés le premier changement plus aucune régle ne passe.
J'ai donc repris tout à zéro avec un .hataccess des plus simple.
Mon objectif étant le suivant :
Sachant que mon site est à cette adresse physique : /var/www/html/monsite/
On y accéde par l'url : http://localhost/monsite/
Jusque là tout va bien mon site est accéssible.
Je souhaite simplement que tout ce qui se trouve derrière l'url du site soit renvoyé en get via la variable &url=
Donc ce qui apparait dans la barre d'adresse comme :
http://localhost/monsite/TOUT/LE/RESTE/ENVOYÉ/DANS/UNE/VARIABLE
doit être réécrit via le .htaccess en :
http://localhost/monsite/index.php?url=TOUT/LE/RESTE/ENVOYÉ/DANS/UNE/VARIABLE
Mon fichier index.php vérifie simplement si on récupére bien quelque chose dans $_GET['url'].
Et voici les différents cas qui se présentent.
Si je tape dans le navigateur les urls :
- http://localhost/monsite/ -> j'accéde à index.php et $_GET['url'] est vide. logique.
- http://localhost/monsite/index.php?url=abcd -> j'accéde à index.php et $_GET['url'] = abcd
- http://localhost/monsite/abcd -> je n'accéde à rien et apache de me dire : "The requested URL /monsite/abcd was not found on this server.
Voici le .htaccess qui fait défaut se trouvant dans /var/www/html/monsite/:
Et je précise que j'ai bien configuré apache avec "httpd.conf" informant "AllowOverride All" pour "/var/www/html", ainsi que le module rewrite d'apache bien chargé.
#
# Apache/PHP configuration:
#
# Général
Options -Indexes
DirectoryIndex index.php
####################################################
# Urls Rewriting
####################################################
# Activation
Options +FollowSymlinks
RewriteEngine On
# Régles
RewriteRule ^(.*)$ index.php?url=$1