chemins et rewritecond .htaccess

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics

dcz
WRInaute impliqué
WRInaute impliqué
 
Messages: 722
Inscription: 2 Mar 2005

chemins et rewritecond .htaccess

Message le Ven Oct 07, 2005 19:38

Hello,
Je me demandais si il existe un moyen de verifier par .htaccess que le chemin demandé dans l'url existe bien.
Je m'explique, si j'utilise un règle type :
Code: Tout sélectionner
RewriteRule [.]*-sujet([0-9]*) /sujet.php?%{QUERY_STRING}&f=$1


une requète du type http://example.com/titre-sujetxx.html reverra a la même page que http://example.com/blabli/titre-sujetxx.html
alors que blabli/ n'existe pas.
Du coup j'ai bien essayé en comparant {REQUEST_URI} et {PATH_INFO} dans un rewrite cond, mais ça ne marche pas.

Donc voilà, s'il existe un moyen de verifier que tout ce qui se trouverait entre / (ou /dossier/ avec un rewritebase dossier/) et / dans l'url (blabli se trouve entre / et / ( ou /dossier/ et /)) soit verifié comme faisant bien partie de l'arborescence du site, je suis preneur.

++


correiaj
WRInaute passionné
WRInaute passionné
 
Messages: 1110
Inscription: 25 Avr 2005

Message le Lun Oct 10, 2005 18:37

ya plein de façon de faire, mais pas par htaccess:
-récupère le $1, et fait un petit script php sur ta page afin de vérifier cela.


correiaj
WRInaute passionné
WRInaute passionné
 
Messages: 1110
Inscription: 25 Avr 2005

Message le Lun Oct 10, 2005 18:44

J´oubliais:
tu peux faire avec le .htaccess, mais c´est vraiment pas pratique:
RewriteCond %{REQUEST_URI} /(lesrépertaoires|...|...|...) [NC]

Mais il faut rajouter à chaque création de répertoire....

dcz
WRInaute impliqué
WRInaute impliqué
 
Messages: 722
Inscription: 2 Mar 2005

Message le Lun Oct 10, 2005 20:12

correiaj a écrit:J´oubliais:
tu peux faire avec le .htaccess, mais c´est vraiment pas pratique:
RewriteCond %{REQUEST_URI} /(lesrépertaoires|...|...|...) [NC]

Mais il faut rajouter à chaque création de répertoire....


Ca c'est vraiment très gentil, et en passant heureusement que tu as posté deux fois, parce que j'ai pas eu le premier mail lol.

Enfin, je vais testé cela de suite.
Par contre, je suis loin d'être suffisamment callé, même si je progresse, en php pour bine comprendre ce que tu évoques à propos de récuperer $1 et de voir ...

++

Et merci pour ce code

dcz
WRInaute impliqué
WRInaute impliqué
 
Messages: 722
Inscription: 2 Mar 2005

Message le Lun Oct 10, 2005 20:16

Ps je viens de tester le code filé ici, et il ne résoud pas le problème :
http://example.com/vraidossier/faudossi ... jetxx.html marche encore en foirant les chemins relatifs.

arf dommage

++


correiaj
WRInaute passionné
WRInaute passionné
 
Messages: 1110
Inscription: 25 Avr 2005

Message le Mar Oct 11, 2005 1:56

ben au lieu de faire:
RewriteRule [.]*-sujet([0-9]*) /sujet.php?%{QUERY_STRING}&f=$1
fait:
RewriteRule(.*)-sujet([0-9]*) /sujet.php?%{QUERY_STRING}&f=$2&URL=$1

$1 te donnera le chemin comp`let demandé.
Après il suffit de faire un teste de la variable $_GET['url'] pour savoir s´il faut exécuter le script, ou renvoyer sur une 404...
du style:
$tes_url=$_GET['url'];
if($test_url=='rep' ou ça ou ça)
{ script de la page}
else
{
renvoie sur une 404..
}

dcz
WRInaute impliqué
WRInaute impliqué
 
Messages: 722
Inscription: 2 Mar 2005

Message le Mar Oct 11, 2005 9:15

arf toujours pas

En fait (j'espère que c pas à cause de easyphp) mais je ne tire rien de 'URL', $HTTP_GET_VARS['URL'] ni $_GET['URL'], du coup pas de test possible.
"URL" est censé être remplis par apache c'est ça?
ou me trompe-je?

Du coup j'ai pas avancé sur les critères qui suivent, je suis pas sur que if($test_url=='rep' ou ça ou ça) suffira, vu que /vraidossier/ est présent dans les deux url (le bonne et la mauvaise), mais il doit y avoir moyen de tester si il n'ay aurait pas un deuxieme "/" après /vraidossier/ vu que je me passe de "/" dans mes titres ;)

Enfin, voili, si tu as encore une tite idée ...

++

dcz
WRInaute impliqué
WRInaute impliqué
 
Messages: 722
Inscription: 2 Mar 2005

Message le Mer Oct 12, 2005 10:27

Arf, j'ai beau prendre le problème dans tous les sens, pas moyen de trouver un truc qui marche, ni par .htaccess ni en php, franchement j'ai besoin d'un tit coup de mains sur ce coup...


++


correiaj
WRInaute passionné
WRInaute passionné
 
Messages: 1110
Inscription: 25 Avr 2005

Message le Mer Oct 12, 2005 20:36

franchement, si tu as d´autres règles, peut être la variable URL en GET est supprimée par apache.
Mais je ne vois pas trop comment t´aider, car je ne sais rien de ce qui se passe chez toi ;-)
En tout cas, essaie de comprendre pourquoi les GET ne passent pas.

dcz
WRInaute impliqué
WRInaute impliqué
 
Messages: 722
Inscription: 2 Mar 2005

Message le Sam Oct 15, 2005 16:30

correiaj a écrit:franchement, si tu as d´autres règles, peut être la variable URL en GET est supprimée par apache.
Mais je ne vois pas trop comment t´aider, car je ne sais rien de ce qui se passe chez toi ;-)
En tout cas, essaie de comprendre pourquoi les GET ne passent pas.


Yep, je suis toujours sur le coup, mais bon pas encore trouvé...

Je poste dès que je trouve.

++


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités