You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Павел Устюгов <p....@inets.ru> on 2008/12/16 07:20:42 UTC

Re[2]: [RESOLVED] RewriteRule / RewriteCond don't interpolate server variables in pattern regex

Hello, Bob Ionescu.

> 2008/12/15 Pavel Ustyugov <p....@inets.ru>:
>> RewriteEngine On
>> RewriteBase /
>> RewriteCond %{REMOTE_USER} !^$
>> RewriteRule !^usr/%{REMOTE_USER}/ /usr/%{REMOTE_USER}/ [R]
>> =======================================
>> If user try to get out from own dir, server forcibly redirect him to correct
>> dir.
>> But, this rules don't work, because mod_rewrite not interpolate server
>> variables in pattern (i see this in log file).

> Use a RegEx internal backreference to compare two values like

> RewriteCond $1<>%{REMOTE_USER} !^([^<]+)<>\1$
> RewriteRule ^usr/([^/]+)/ /usr/%{REMOTE_USER}/ [R]

Huge thanks for greap idea. Genius trick!

I add some additions and obtain work config:

RewriteCond %{REMOTE_USER} !^$
RewriteCond $1<>%{REMOTE_USER} !^([^<]+)<>\1$
RewriteRule ^usr/([^/]+)/ /usr/%{REMOTE_USER}/ [R,L]
RewriteRule !^usr/[^/]+/ /usr/%{REMOTE_USER}/ [R,L]





---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org