need help with rewritting rules

Posted on 2011-09-21
Medium Priority
Last Modified: 2012-05-12
hello i have a question about rewriting rule
i have 4  thumbnails galery  that onmouseover display data and picture with ajax it's  associated with limits: 5 thumbnails are displayed starting display from limits given trough url, and an arrow able the visitor to see five more.

what i would like is to have a link to each thumb going to the same page than the script info display but displaying picture and infos through a google/ and robots friendly environnment that means no ajax but i would display the  <img src="myimage.jpg"> with myimage.jpg coming fom the location url

currenly i use the following rewriting rule:

RewriteRule ^print/([a-z]{2})/([0-9]+)/([0-9]+)/([0-9]+)/([0-9]+)/?$ /print.php?lang=$1&limite1=$2&limite2=$3&limite3=$4&limite4=$5
RewriteRule ^print/([^/]*) /print.php?lang=$1&limite1=0&limite2=0&limite3=0&limite4=0
but limits works only for one section  (board) at the moment

so i think it will evolve to something longer

and would give a location something like http://localhost/print/en/1/0/0/0/0/myimage.jpg

what do u thing?
would my rewriting rule  be like  this?

RewriteRule ^print/([a-z]{2})/([0-9]+)/([0-9]+)/([0-9]+)/([0-9]+)/([a-z])/?$ /print.php?lang=$1&limite1=$2&limite2=$3&limite3=$4&limite4=$5&limite5=$6&image=$7

RewriteRule ^print/([^/]*) /print.php?lang=$1&limite1=0&limite2=0&limite3=0&limite4=0

thanks for your precious help

Question by:jerrrrry
  • 2
LVL 35

Expert Comment

by:Terry Woods
ID: 36584795
Each number after a $ in the replacement refers back to a capturing group in the pattern ie it's a backreference. You can't have more backreferences than you have capturing groups.

Your rule:
RewriteRule ^print/([a-z]{2})/([0-9]+)/([0-9]+)/([0-9]+)/([0-9]+)/([a-z])/?$ /print.php?lang=$1&limite1=$2&limite2=$3&limite3=$4&limite4=$5&limite5=$6&image=$7
has 6 capturing groups, but has a backreference to $7 so I believe it would fail with an error.

Could you please give some clarity as to which source URLs you want redirected to which target URLs. eg

"I want to redirect:


Author Comment

ID: 36589487
i would like
to redirect


to print.php?lang=fr&galerie=1&limite1=0&limite2=0&limite3=0&limite4=0&show=folder/image.jpg

would it be wise?
maybe i don't need to use a folder/ and use directly the image but in a first time i would like to know how you can use it and redirect it

i would like to display the image using $show,
LVL 35

Accepted Solution

Terry Woods earned 2000 total points
ID: 36596220
For that example, I believe the rule should look like this:

RewriteRule ^print/([a-z]{2})/([0-9]+)/([0-9]+)/([0-9]+)/([0-9]+)/([0-9]+)/(.*)$ /print.php?lang=$1&galerie=$2&limite1=$3&limite2=$4&limite3=$5&limite4=$5&limite5=$6&show=$7

I changed the capturing group ([a-z]) to (.*) as previously it was looking for a single lowercase letter between two / characters, whereas actually you want it to be the folder and image name.

As for whether it's wise or not, you're probably best to ask that as a separate question and get some other expert's opinions. My specialty is the regular expressions side of things.

Featured Post

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Periodically we have to update or add SSL certificates for customers. Depending upon your hosting plan you may be responsible for the installation and/or key generation. In the wake of Heartbleed many sites were forced to re-key. We will concen…
Lease-to-own eliminates the expenditure of hardware replacement and allows you to pay off the server over time. Usually, this is much cheaper than leasing servers. Think of lease-to-own as credit without interest.
Learn how to match and substitute tagged data using PHP regular expressions. Demonstrated on Windows 7, but also applies to other operating systems. Demonstrated technique applies to PHP (all versions) and Firefox, but very similar techniques will w…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
Suggested Courses

607 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question