Besoin d'aide pour un débutant en url rewritting

  • Auteur de la discussion Auteur de la discussion Morning
  • Date de début Date de début
Nouveau WRInaute
Bonjour tout le monde :)

Voila je débute en URL Rewriting et mon patron (qui est tres tres méchant :p) m'a demandé de faire un truc qui met à rude épreuve mon intellect.

Et vu que, évidemment, ça urge, je me demandais si vous pourriez pas m'aider.

Donc voila j'ai un site internet :

www.monsite.com

qui doit, quand un utilisateur tappes une adresse qui n'existe pas :

www.monsite.com/jenexistepas

rediriger l'utilisateur sur un fichier redirect.php avec en paramétre la fameuse adresse :

www.monsite.com/redirect.php?var=jenexistepas

L'intéret apres etant de pouvoir analyser le contenu de var transmis au fichier php et déclencher des actions appropriées...

Alors j'ai testé plain plein de trucs dans mon fichier .htaccess, avec RewriteCond et RewriteRule avec plus ou moins de reussite :

1) ca marche pas du tout...

Les url non valides sont renvoyées vers la bonne vielle page 404 et pas mon redirect.php...

2) ca marche trop bien :)

Dans ce dernier cas même les url valides sont renvoyées vers mon redirect.php :(


Pouvez vous m'aider s'il vous plais ?

(j'espère avoir été assez clair dans mon explication)
 
Nouveau WRInaute
Voila un de mes tests qui ne fonctionne pas

RewriteEngine on
RewriteCond %{REQUEST_URI} !-U
RewriteRule ^/(.*) /redirect.php?var=$1


Ici ca part sur la page 404 par défaut et pas sur redirect.php...
 
WRInaute passionné
Si j'ai bien compris tu souhaite activer le mode rewrite que pour les adresses qui n'existe pas, et pas pour les autres !
Code:
ErrorDocument 404  (.*) http://www.exemple.com/redirect.php?var=$1

Je sais pas si cela marche essai quand meme !
 
Nouveau WRInaute
mmm non la a passe pas du tout :)

Ca me plante ispman

La syntaxe doit pas être bonne...

Merci quand même :)
 
WRInaute passionné
J'ai fait une recherche avec ErrorDocument
J'ai rien trouvé pour personnaliser l'erreur 404 en fonction de ce qu' avait entré l'utilisateur pour l adresse.
A mon avie c'est pas possible avec l' ErrorDocument

Mais DSL je vois pas
Sinon la bonne structure pour l' ErrorDocument c'est
Code:
ErrorDocument 404 http://www.exemple.com/404.php
 
WRInaute accro
Il suffit juste de l'envoyer vers une page error404 et dedans pour connaitre la provenance utiliser, en php
Code:
$_SERVER["REQUEST_URI"]
Et ensuite, soit envoyer un mel, si pas beaucoup, soit créer une interface de visualisation avec log ou bdD
 
Nouveau WRInaute
Leonick a dit:
Il suffit juste de l'envoyer vers une page error404 et dedans pour connaitre la provenance utiliser, en php
Code:
$_SERVER["REQUEST_URI"]
Et ensuite, soit envoyer un mel, si pas beaucoup, soit créer une interface de visualisation avec log ou bdD

Quand je fais ça je récupère /redirect.php et pas ce que le gars à tapper...
 
WRInaute passionné
Morning a dit:
oki j'ai trouvé
je poste mon truc au cas ou ca puisse servir à quelqu'un :)

RewriteEngine on
RewriteRule ^/([A-za-z0-9]+)$ http://www.monsite.com/redirect.php?var=$1 [QSA,NC,L]

:o

C'est une redirection banal mais c'est pas trop la fonction souhaité.
Tu as une erreur 404 tu devrais retourner sur une erreur 404.
En faite dans ton cas il n'y aura jamais d' erreur 404 tu sera dans tout les cas redirigé vers redirect.php?var=
Mais bon si ca marche c'est l 'essentiel :roll:
 
Discussions similaires
Haut