httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From solprovi...@apache.org
Subject Re: [users@httpd] Frustrated with rewrite rule, please help...
Date Tue, 25 Dec 2007 16:15:25 GMT
On 12/23/07, Phil Wild <philwild@gmail.com> wrote:
> I am having trouble with my first attempts at using rewrite rules under
> apache. I am not sure where I am going wrong and have spent the morning
> googling to try and figure this out.
>
> I want to rewrite
> http://www.example.com/doc/bin/view/TWiki/WebHome so it looks
> like http://www.example.com/doc/WebHome where WebHome changes
>
> I have the following in my conf file:
> ScriptAlias /doc/bin "/opt/twiki/bin"
> Alias /doc/pub "/opt/twiki/pub"
> Alias /doc "/opt/twiki"
>
> RewriteEngine On
> RewriteLogLevel 9
> <Directory "/opt/twiki/bin">
> RewriteRule ^doc/([A-Z].*) /doc/bin/view/$1 [PT] [L]
>
> Any clues as to what I am doing wrong?
> The error log does not contain any log entries relating to rewriting so I
> think I am completely missing the mark...
> Phil

The RewriteRule should begin with a slash.  Multiple flags are
separated with commas, not by adding additional parameters (which
should be ignored or cause an error.)
   RewriteRule ^/doc/([A-Z].*)$ /doc/bin/view/$1 [PT,L]

The Alias commands serve content outside DocumentRoot.  The Alias
commands belong after the RewriteRules (just for logic.  I do not know
if the order matters.)  Parameters do not require quotes.  The third
command makes the second line redundant.

Needing RewriteRule's [L] flag indicates poor design (but is needed
because sometimes the web administrator does not control the entire
design.)  For sanity, do not use the same identifier for multiple
purposes.  You are using "/doc/" as  the external URL path and the
indicator for internal redirection.  This substitution:
   /doc/* -> /doc/abc/*
allows for an infinite loop.  Using:
  /doc/* -> /mydocs/abc/*
cannot create infinite loops, does not require the [L] flag, and does
not affect anything outside your control -- just the Alias commands.

None of these commands belong with a Directory section.  httpd cannot
decide which directory to use until after the Rewrite and Alias
commands have been processed.

RewriteEngine On
RewriteLogLevel 9
RewriteRule ^/doc/([A-Z].*)$ /tdocs/bin/view/$1 [PT]
RewriteRule ^/doc/(.*)$ /tdocs/$1 [PT]
ScriptAlias /tdocs/bin /opt/twiki/bin
Alias /tdocs /opt/twiki

HTH,
solprovider

---------------------------------------------------------------------
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


Mime
View raw message