8791 sujets

Développement web côté serveur, CMS

Bonjour à tous,

Je rencontre un léger problème sur une redirection via url rewrinting.
Je vous explique, j'aimerais mettre en place les règles suivantes (mon htaccess est mis dans un répertoire spécifique de mon site du genre www.monsite.com/monrep/) :
- Si on contact mon répertoire sans nom de fichier => renvoyer vers le index.php de mon rep (ce qui correspond à l'exemple www.monsite.com/monrep/)
- Sinon si on contact n'importe quel fichier du type xxx.php => renvoyer vers redirect.php?a=xxx (ce qui correspond à www.monsite.com/monrep/xxx.php)

Voilà ce que j'ai fait et qui fonctionne pour la première partie, gestion de l'index mais hélas qui ne marche pas pour la seconde (je retrouve dans ma variable a : "redirect"... au lieu de xxx).


RewriteEngine on

RewriteRule index.php$ index.php [L]
RewriteRule (.+)\.php$ redirect.php?a=$1


Un grand merci à tout ceux qui pourrait me débloquer !!
Modifié par roule007 (19 Aug 2009 - 10:45)
Pour pouvoir étendre la querystring, il faut le spécifier au rewrite engine.
Ce qui donne :

RewriteEngine on
RewriteRule index.php$ index.php [L]
RewriteRule (.+)\.php$ redirect.php?a=$1 [QSA,L]
Salut

1/ A priori il suffit d'avoir "index.php" dans la directive DirectoryIndex du module dir_module (httpd.conf) ou dans <Directory> de ton rep.

2/ Une fois le premier fait, j'aurais plutôt fait ça:
RewriteEngine on 
RewriteCond %{SCRIPT_FILENAME} !index\.php|redirect\.php
RewriteRule (.*)\.php$ redirect.php?a=$1 [L]
Edit: j'ai changé quelques trucs car j'avais oublié que tu étais dans un dossier relatif. Note que si tu avais "redirect" dans ton querystring c'est parcequ'Apache effectue un INTERNAL_REDIRECT après avoir appliqué un root prefix à ta première réécriture, ce qui a pour effet de relancer la réécriture (relecture du .htaccess). Tu avais donc test.php > redirect.php?a=test puis redirection vers /monrep/redirect.php?a=test et enfin redirect.php > redirect.php?a=redirect.
 
Modifié par Ze Nenex (12 Aug 2009 - 14:02)
Re bonjour,

Décidément je galère avec mon htaccess !
Je reviens vers vous avec la suite de mon problème, voici la configuration que j'aimerais avoir (je me tiens dans un repertoire de mon site) :
Si on contact le rep vide =>> je renvois vers l'index
Si on contact le rep avec un sous rep => j'envoi vers mapage.php?var=sousrep
Si on contact le rep avec un sous rep, et un autre sous rep => j'envoi vers mapage.php?var1=sousrep&var2=sousrep2
Si on contact le rep avec un sous rep, et un autre sous rep et un fichier dedant => j'envoi vers mapage.php?var1=sousrep&var2=sousrep2&var3=fichier

ce qui donnerait chez moi quelquechose du genre (mais qui ne marche pas) :

RewriteEngine on
#Options +FollowSymlinks

#Page par région, dep, ville
RewriteRule index.php$ index.php [L]
RewriteRule (.+)\.php$ annonceur.php?region=$1
RewriteRule (.+)/(.+)\.php$ annonceur.php?region=$1&dep=$2
RewriteRule (.+)/(.+)/(.+).php$ annonceur.php?region=$1&dep=$2&ville=$3


A l'aide !!!! Smiley bawling
Je vous jure, après ça je m'achete un cd de formation sur l'url rewrinting Smiley biggol
Smiley biggol Bon encore un test infructueux...

Si une âme sensible peux m'aider, je lui en serais très reconnaissant !!!

Parce que la je suis à 2 doigts de divorcé avec mon htaccess Smiley lol
Voilà ou j'en suis mais ça ne marche tjrs pas...

RewriteEngine on

RewriteRule index.php$ index.php [L]

RewriteRule (.+)/(.+)/(.+).php$ annonceur.php?region=$1&dep=$2&ville=$3

RewriteRule (.+)/(.+).php$ annonceur.php?region=$1&dep=$2

RewriteRule (.+).php$ annonceur.php?region=$1
Vous êtes encore en vacances les amis ? Smiley bawling Smiley bawling
Je m'en sors toujours pas pour info, après 50 tests...
Un petit coup de main serait vraiment le bien venu !!
un petit up please, tout seul je ne m'en sors pas, et malgré mes recherches assidus....pas de résultats Smiley biggol
Salut, dis donc tu en post des up xD

Dis, moi, tes variables $1, $2 et $3 sont de quel type, des chiffres, des lettres ?
Salut, les variables sont des lettres uniquement (nom de ville, de région...)
Et désolé pour les ups mais ça fait plus d'une semaine que je m'arrache les cheveux sur ce code Smiley confus