2011-10-14 3 views
0

désolé si c'est une question commune, je besoin d'une réponse précise:RewriteRule, pour donner un paramètre un chemin

Je veux réécrire une URL comme:

/foo/foo0.php?img=foo1/foo2/foo3/bar.jpg 

dans ce:

/foo/foo1/foo2/foo3/bar.jpg 
+0

Quel serveur utilisez-vous? Qu'avez-vous essayé? – PPvG

+0

@PPvG 'RewriteRule^foo /(.*/.*/.*/.*)$ foo/foo0.php? Img = $ 1' ne fonctionne pas :( – user544262772

Répondre

2
RewriteRule ^(.*)/(.*)/(.*)/(.*)/(.*)$ $1/foo0.php?img=$2/$3/$4/$5 [L] 

fera-t-il

EDIT

A en juger par le code que vous voulez vraiment faire avez ajouté comme ceci:

RewriteRule ^foo/(.*)/(.*)/(.*)/(.*)$ foo/foo0.php?img=$1/$2/$3/$4 [L] 
+0

Devrait? Est-ce une utilisation courante? Est cela correct? 'RewriteRule^foo /(.*/.*/.*/.*)$ foo/bar0.php? img = $ 1' – user544262772

+0

Désolé mauvais choix de mots, je voulais juste dire qu'il n'a pas été testé. Je suis conscient que c'est à peu près aussi courant qu'il obtient pour une règle de réécriture – Clive

+0

@Oddant: J'ai mis à jour la réponse, essayez cela – Clive

1

Sur la base des commentaires, je ne pense pas que les multiples segments sont vraiment nécessaires. Cela devrait être suffisant:

RewriteRule ^foo/(.*)$ foo/foo0.php?img=$1 [L] 

Cela vous permettra d'utiliser un certain nombre de segments foo.

+0

est-ce sécurisé pour mon serveur? – user544262772

+0

Probablement pas moins sécurisé que l'autre solution, étant donné qu'ils autorisent tous les caractères (valides). Bien sûr, vous devriez désinfecter toutes les entrées utilisateur de toute façon. – PPvG

Questions connexes