Re: Rewrite Rule help

This is a discussion on Re: Rewrite Rule help within the Apache forums in Application Servers & Tools category; On Wed, Sep 17, 2008 at 2:49 PM, Yoom Nguyen <yoom @ hostwebase.com> wrote: > > DocumentRoot /srv/www/maintenance/ > > RewriteEngine on > RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) > RewriteRule .* -[F] > > RewriteRule ^/(.*)$ maintenance.html [R=302,NC,L] Add a / before maintenance.html, and Protect the rule by preceding it with RewriteCond %{REQUEST_URI} !=/maintenance.html (you can do the latter via your regex, but it's usually simpler to guard it the other way) -- Eric Covener covener@gmail.com --------------------------------------------------------------------- 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 ...

Go Back   Application Development Forum > Application Servers & Tools > Apache

Object Mix

Register FAQ Calendar Search Today's Posts Mark Forums Read
  #1  
Old 09-17-2008, 03:40 PM
Eric Covener
Guest
 
Default Re: Rewrite Rule help

On Wed, Sep 17, 2008 at 2:49 PM, Yoom Nguyen <yoom@hostwebase.com> wrote:

>
> DocumentRoot /srv/www/maintenance/
>
> RewriteEngine on
> RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
> RewriteRule .* -[F]
>
> RewriteRule ^/(.*)$ maintenance.html [R=302,NC,L]



Add a / before maintenance.html, and Protect the rule by preceding it
with RewriteCond %{REQUEST_URI} !=/maintenance.html

(you can do the latter via your regex, but it's usually simpler to
guard it the other way)


--
Eric Covener
covener@gmail.com

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


Reply With Quote
  #2  
Old 09-17-2008, 03:59 PM
Agus
Guest
 
Default Re: Rewrite Rule help

2008/9/17 Eric Covener <covener@gmail.com>:
> On Wed, Sep 17, 2008 at 2:49 PM, Yoom Nguyen <yoom@hostwebase.com> wrote:
>
>>
>> DocumentRoot /srv/www/maintenance/
>>
>> RewriteEngine on
>> RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
>> RewriteRule .* -[F]
>>
>> RewriteRule ^/(.*)$ maintenance.html [R=302,NC,L]

>
>
> Add a / before maintenance.html, and Protect the rule by preceding it
> with RewriteCond %{REQUEST_URI} !=/maintenance.html
>
> (you can do the latter via your regex, but it's usually simpler to
> guard it the other way)
>
>
> --
> Eric Covener
> covener@gmail.com
>
> ---------------------------------------------------------------------
> 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
>
>


Hi Eric....just a question....what do you accomplish by that
protecting rule you recommend?
Just curious...

Thanks

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


Reply With Quote
  #3  
Old 09-17-2008, 04:02 PM
André Warnier
Guest
 
Default Re: Rewrite Rule help

Eric Covener wrote:
> On Wed, Sep 17, 2008 at 2:49 PM, Yoom Nguyen <yoom@hostwebase.com> wrote:
>
>> DocumentRoot /srv/www/maintenance/
>>
>> RewriteEngine on
>> RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
>> RewriteRule .* -[F]
>>
>> RewriteRule ^/(.*)$ maintenance.html [R=302,NC,L]

>
>
> Add a / before maintenance.html, and Protect the rule by preceding it
> with RewriteCond %{REQUEST_URI} !=/maintenance.html
>
> (you can do the latter via your regex, but it's usually simpler to
> guard it the other way)
>
>

RewriteRule !^/maintenance\.html$ /maintenance.html [R=302,NC,L]
?

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


Reply With Quote
  #4  
Old 09-17-2008, 04:03 PM
Yoom Nguyen
Guest
 
Default Re: Rewrite Rule help

Eric,

That was it, I need that RewriteCond.
Thank you so much for your help.

Y



----- Original Message -----
From: "Eric Covener" <covener@gmail.com>
To: users@httpd.apache.org
Sent: Wednesday, September 17, 2008 3:40:15 PM (GMT-0500) America/New_York
Subject: Re: [users@httpd] Rewrite Rule help

On Wed, Sep 17, 2008 at 2:49 PM, Yoom Nguyen <yoom@hostwebase.com> wrote:

>
> DocumentRoot /srv/www/maintenance/
>
> RewriteEngine on
> RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
> RewriteRule .* -[F]
>
> RewriteRule ^/(.*)$ maintenance.html [R=302,NC,L]



Add a / before maintenance.html, and Protect the rule by preceding it
with RewriteCond %{REQUEST_URI} !=/maintenance.html

(you can do the latter via your regex, but it's usually simpler to
guard it the other way)


--
Eric Covener
covener@gmail.com

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



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


Reply With Quote
  #5  
Old 09-17-2008, 04:43 PM
Eric Covener
Guest
 
Default Re: Rewrite Rule help

On Wed, Sep 17, 2008 at 4:02 PM, André Warnier <aw@ice-sa.com> wrote:
>> (you can do the latter via your regex, but it's usually simpler to
>> guard it the other way)
>>
>>

> RewriteRule !^/maintenance\.html$ /maintenance.html [R=302,NC,L]


It quickly gets unamangeable as you need to add captures (putting you
into the realm of lookahead/lookbehind) and 2nd/3rd/4th escape hatches

--
Eric Covener
covener@gmail.com

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


Reply With Quote
  #6  
Old 09-17-2008, 04:58 PM
André Warnier
Guest
 
Default Re: Rewrite Rule help

Eric Covener wrote:
> On Wed, Sep 17, 2008 at 4:02 PM, André Warnier <aw@ice-sa.com> wrote:
>>> (you can do the latter via your regex, but it's usually simpler to
>>> guard it the other way)
>>>
>>>

>> RewriteRule !^/maintenance\.html$ /maintenance.html [R=302,NC,L]

>
> It quickly gets unamangeable as you need to add captures (putting you
> into the realm of lookahead/lookbehind) and 2nd/3rd/4th escape hatches
>

Now, come on. I was answering this particular one, in which there are no
captures nor any necessary. My solution is one line, yours is two; mine
does not have to backtrack to the RewriteCond, yours does; regexpes are
fast; and there is certainly some extra overhead in fetching
%{REQUEST_URI} and comparing it to "/maintenance.html".
Admit defeat, sportingly. ;-)

Plus, if it was so that one needed to capture parts, you would need also
several RewriteCond's, and probable variables to hold them, no ?
(genuinely asking, I'm just starting to learn mod_rewrite)


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


Reply With Quote
  #7  
Old 09-17-2008, 05:20 PM
Eric Covener
Guest
 
Default Re: Rewrite Rule help

On Wed, Sep 17, 2008 at 4:58 PM, André Warnier <aw@ice-sa.com> wrote:
> Eric Covener wrote:
>>
>> On Wed, Sep 17, 2008 at 4:02 PM, André Warnier <aw@ice-sa.com> wrote:
>>>>
>>>> (you can do the latter via your regex, but it's usually simpler to
>>>> guard it the other way)
>>>>
>>>>
>>> RewriteRule !^/maintenance\.html$ /maintenance.html [R=302,NC,L]

>>
>> It quickly gets unamangeable as you need to add captures (putting you
>> into the realm of lookahead/lookbehind) and 2nd/3rd/4th escape hatches
>>

> Now, come on. I was answering this particular one, in which there are no
> captures nor any necessary. My solution is one line, yours is two; mine does
> not have to backtrack to the RewriteCond, yours does; regexpes are fast; and
> there is certainly some extra overhead in fetching %{REQUEST_URI} and
> comparing it to "/maintenance.html".
> Admit defeat, sportingly. ;-)


Sorry, many hours with users on #apache (and customers) makes me feel
that baking the restriction into the RewriteRule is a second choice,
as I included my reply (because it's counter-intuitive that addl
directives are easier to deal with)

> Plus, if it was so that one needed to capture parts, you would need also
> several RewriteCond's, and probable variables to hold them, no ?
> (genuinely asking, I'm just starting to learn mod_rewrite)


No, it's that you can't capture in the RewriteRule when you prefix it
with a negation. You have to bake the negation into e.g. negative
lookahead/behind in pcre instead of just asking mod_rewrite to negate
the entire test.

--
Eric Covener
covener@gmail.com

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


Reply With Quote
Reply


Thread Tools
Display Modes


All times are GMT -5. The time now is 06:41 PM.


Powered by vBulletin® Version 3.7.2
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
vB Ad Management by =RedTyger=

In an effort to better serve ads to our visitors, cookies are used on objectmix.com. For more information, check out our Privacy Policy.