htaccess R=301 sur deux lignes avec Rewrite(Cond|Rule)

Avatar du membre
Mammouth du PHP | 1564 Messages

10 janv. 2013, 09:10

Bonjour,

je souhaite dire à apache de redirectionner les pages si celles ci sont appelées directement via les variables PHP

mon code .htaccess:

Code : Tout sélectionner

RewriteCond %{QUERY_STRING} =^action=(voir|modifier|supprimer|nouveau)&id=([0-9]+)$ RewriteRule .* /$1-$2? [R=301,L]
j'aimerai pouvoir faire une URL comme ceci: site.com/voir-75 ou site.com/modifier-541 (entres autres)


Merci d'avance pour votre aide.
Bonne journée

ViPHP
xTG
ViPHP | 7331 Messages

10 janv. 2013, 09:45

Je ne suis pas sûr que cela soit une bonne idée.
Plutôt débutant dans l'écriture de htaccess mais je pense qu'à part une jolie boucle tu n'obtiendras pas grand chose. :)

Avatar du membre
Mammouth du PHP | 1564 Messages

10 janv. 2013, 10:54

Ouai, j'arrive pas à redirection l'url qui ya dans le navigateur depuis tout à l'heure.

Avatar du membre
Mammouth du PHP | 1564 Messages

10 janv. 2013, 21:51

j'ai réussi à redirectionner vers /voir-1 quand je clic sur /index.php?action=voir&id=1 mais le problème c'est que ça redirige à la racine du site et non dans le dossier même, une solution ?

mon site (en local) est dans des dossiers: localhost/dossier1/dossier2/dossier3/index.php?action=voir&id=1 ça redirectionne vers: localhost/voir-1

je précise que j'ai éssayé avec:
RewriteBase /
RewriteBase /dossier1/dossier2/dossier3/
et
RewriteBase http://localhost/dossier1/dossier2/dossier3/ (génère une erreur 500)

Mon code acuel:

Code : Tout sélectionner

RewriteRule ^voir-([0-9]+)$ index.php?action=voir&id=$1 [R=301,L] RewriteCond %{QUERY_STRING} ^action=voir&id=([0-9]+)$ RewriteRule .* /voir-%1? [R=301]

Avatar du membre
Mammouth du PHP | 1564 Messages

10 janv. 2013, 23:34

ça commence à me courir sur le haricot le htaccess

je suis redirectionné vers http://localhost/C:/wamp/www/dossier1/dossier2/dossier3/index.php?action=voir&id=2 maintenant, voici mon code:

Code : Tout sélectionner

RewriteEngine On RewriteRule ^voir-([0-9]+)$ index.php?action=voir&id=$1 [R=301,L]
je comprend pas, même après 36 articles lu sur internet

Avatar du membre
Mammouth du PHP | 1564 Messages

14 janv. 2013, 01:06

Toujours pas trouvé de réponse

Mammouth du PHP | 1511 Messages

17 janv. 2013, 09:28

Le flag R force la redirection.
Fais quelques recherches sur les flags d'url rewriting, tu auras un début de réponse à ton problème.