Solved

need help with rewritting rules

Posted on 2011-09-21
3
260 Views
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



Sans-titre-1.jpg
0
Comment
Question by:jerrrrry
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
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:
print/fr/
to
print.php?lang=fr&limite1=0&limite2=0&limite3=0&limite4=0

and
print/fr/5/
to
print.php?lang=fr&limite1=5&limite2=0&limite3=0&limite4=0
"
0
 

Author Comment

by:jerrrrry
ID: 36589487
i would like
to redirect

print/fr/1/0/0/0/0/folder/image.jpg

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,
thanks
0
 
LVL 35

Accepted Solution

by:
Terry Woods earned 500 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.
0

Featured Post

Guide to Performance: Optimization & Monitoring

Nowadays, monitoring is a mixture of tools, systems, and codes—making it a very complex process. And with this complexity, comes variables for failure. Get DZone’s new Guide to Performance to learn how to proactively find these variables and solve them before a disruption occurs.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Most ColdFusion developers get confused between the CFSet, Duplicate, and Structcopy methods of copying a Structure, especially which one to use when. This Article will explain the differences in the approaches with examples; therefore, after readin…
If your site has a few sections that need to be secure when data is transmitted between the server and local computer, such as a /order/ section for ordering or /customer/ which contains customer data, etc it would of course be recommended to secure…
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…

688 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