You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Robert Ionescu <ro...@googlemail.com> on 2006/06/06 19:17:00 UTC
Re: [users@httpd] rewrite rule
Axel-Stéphane SMORGRAV wrote:
> Could you give some explanations wrt. your RewriteCond ? I have never seen this kind of expressions before.
Yes. \1 is a regEx internal back reference containing everything matched
in the first group (/test/.+)
So assuming a request of /test/index.html (=value of $1) from
http://example.com/test/index.html (referer), the TestString
(left) is
http://example.com/test/index.html<>/test/index.html
The regEx '(/test/.+)<' would match '/test/index.html<' and capture the
part '/test/index.html' in a back reference. Now the pattern matches the
> from the TestString followed by the value of the first back reference
from within that regEx, which is '/test/index.html'.
So http://example.com/test/index.html<>/test/index.html (testString)
would match against the pattern /test/index.html<>/test/index.html, the
RegEx-Engine returns true. The result is now negated in mod_rewrite by
the exclamation mark resulting in false which would abort this RewriteRule.
>> RewriteEngine On
>> RewriteCond %{HTTP_REFERRER}<>$1 !(/test/.+)<>\1$
>> RewriteRule ^(/test/[^/]*\.(html?|php))$ /test-redir.php?page=$1 [L,NS]
--
Robert
---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
" from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org