Page 1 sur 1

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

Posté : 10 janv. 2013, 09:10
par two3d
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

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

Posté : 10 janv. 2013, 09:45
par xTG
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. :)

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

Posté : 10 janv. 2013, 10:54
par two3d
Ouai, j'arrive pas à redirection l'url qui ya dans le navigateur depuis tout à l'heure.

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

Posté : 10 janv. 2013, 21:51
par two3d
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]

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

Posté : 10 janv. 2013, 23:34
par two3d
ç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

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

Posté : 14 janv. 2013, 01:06
par two3d
Toujours pas trouvé de réponse

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

Posté : 17 janv. 2013, 09:28
par momox
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.