2009-05-25 11 views
0

J'ai rencontré un problème de lecture avec Gallery lorsque j'ai modifié un paramètre. Cependant, j'ai remarqué il y a un modèle à l'erreur:Mod-rewrite URL Modifier

Les URL regarder en tant que telle:
main.php/d/nombre/name.jpg

"nombre" est dynamique (ie « 9496- "" Name "est dynamique (ie" all + clad + 7pc + b ")

Malheureusement, lorsque j'ai modifié le réglage, la partie "nombre" est passée de "9496-2" à "9495-2".

Comment puis-je soustraire la valeur "1" de la variable "nombre"?

Jeff

Répondre

0

Cela devrait le faire.

RewriteEngine On 
RewriteBase/
RewriteRule ^photos/ebay/main.php/d/([0-9]*)6-([0-9]*)/(.*).jpg /photos/ebay/main.php/d/$1\5-$2/$3.jpg [QSA,L] 

Je sais que vous avez dit que vous l'avez déjà obtenu, mais voici une solution sans script supplémentaire. (Et j'ai effectivement testé celui-ci pour s'assurer que \ 5 fonctionne).

+0

Merci pour la réponse rapide. "9496-2" est dynamique aussi. Je pense que je dois diviser ce nombre au tableau de bord, et soustraire un de la première partie? – Jefe

+0

Ok, cela devrait le faire. Le ($ 1) peut ne pas fonctionner car je n'ai jamais essayé cela auparavant mais cela devrait être un simple google. – Sionide21

+0

L'utilisation de "($ 1)" ajoute en fait le caractère() de chaque côté de la variable. – Jefe

0

Vous n'avez pas dit quelle partie de vos URL sont fixés une quelles parties varient, donc je vais juste deviner:

RewriteEngine on 
RewriteBase/
RewriteRule ^/photos/ebay/main.php/d/9496-2/(.*)$ /photos/ebay/main.php/d/9495-2/$1 [QSA,L] 

Vous pouvez également ajouter R=301 aux drapeaux si vous J'aimerais envoyer une redirection aux clients. (en l'état, cela devrait juste faire une "redirection interne")

+0

J'ai réussi à faire fonctionner ceci pour un cas, avec une petite modification: RewriteRule^main.php/d/9496-2 /(.*)$/photos/ebay /main.php/d/9495-2/$1 [QSA, L] – Jefe

0

Voici la solution qui a fonctionné. Cela impliquait l'utilisation d'un fichier .htaccess et d'un script PHP.

fichier .htaccess:
Créer le fichier ".htaccess" avec le contenu ci-dessous:

RewriteEngine On 
RewriteBase/

# Redirect to PHP Script 
RewriteRule ^main.php/d/([0-9]*)-([0-9])/(.*)$ scriptName.php?v1=$1&v2=$2&v3=$3 [R=301,QSA,L] 

PHP Script:
Créer le "scriptName.php", puis ajoutez dans votre logique. Dans mon cas, j'avais besoin de soustraire "1" de v1.

REMARQUE: assurez-vous que le script .htaccess et PHP sont dans le même chemin.

Questions connexes