Welcome to WebmasterWorld Guest from 54.242.72.36

Forum Moderators: Ocean10000 & incrediBILL & phranque

Message Too Old, No Replies

Using back references in mod rewrite

     

milanmk

12:01 pm on Aug 2, 2007 (gmt 0)

5+ Year Member



I have the following rule.

RewriteRule (^(dir1¦dir2)/dir3/(page1¦page2)-([0-9])+\.jpg$) /test.php?src=$1 [L]

Now if i want to use back references in RewriteCond then am i correct in guessing them like this:-

$1 = dir1/dir3/page1-001.jpg
$2 = dir1
$3 = page1
$4 = 001

If so, i can use them in RewriteCond like

RewriteCond %{HTTP_REFERER}!^http://example\.com/$2/dir4/$3-$4\.htm [NC]

Milan

milanmk

1:57 pm on Aug 2, 2007 (gmt 0)

5+ Year Member



I think we can only use back references in TestString and not in CondPattern, right?

Milan

jdMorgan

4:34 pm on Aug 2, 2007 (gmt 0)

WebmasterWorld Senior Member jdmorgan is a WebmasterWorld Top Contributor of All Time 10+ Year Member



Correct for both your analysis of the back-reference variables and your question about the test-string.

To determine back-reference variable numbers, count the left parentheses.

You can use back-references only in the test-string on the left side of a RewriteCond, and not in the pattern on the right.

Also, be aware that if you use the "Referer is NOT" construct, you must make provisions in the logic so that the code behaves correctly when the referer is blank, which it will be quite often, even for legitimate requests.

Jim

[edited by: jdMorgan at 4:34 pm (utc) on Aug. 2, 2007]

milanmk

4:57 am on Aug 3, 2007 (gmt 0)

5+ Year Member



Thanks Jim for confirming it.

Milan

 

Featured Threads

Hot Threads This Week

Hot Threads This Month