Re: [users@httpd] mod rewrite redirect if NOT in URL

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 4/25/06, John Nichel <john@xxxxxxxxxxxx> wrote:
> Joshua Slive wrote:
> > On 4/25/06, John Nichel <john@xxxxxxxxxxxx> wrote:
> >> Hi, I usually have no problem redirecting based on what is in the URL,
> >> but now I'm trying to redirect all pages in a site to one page on the
> >> same site. I have to exclude that one page from the redirection process
> >> else I get an infinite loop. I've tried numerous combinations of the
> >> following, but I can't see to get it to work....
> >>
> >> RewriteCond %{SCRIPT_FILENAME} !^redirect\.html [NC]
> >> RewriteRule ^/$ /redirect.html
> >>
> >>
> >> Basically, if the URL doesn't contain 'redirect.html', redirect to
> >> redirect.html
> >
> > (I suspect your example is off, since the RewriteRule above will not
> > create a loop; it only addresses one URL.)
> >
> > Use the RewriteLog to figure out what is going wrong.
> >
> > Either of these should work:
> > RewriteCond %{Request_URI} !^/redirect\.html [NC]
> > ...
> > or
> > RewriteRule ^/redirect\.html - [L]
> >
> > Joshua.
> >
>
> Hi Joshua,  thanks for the response.  Unfortunately it doesn't seem to
> be working for me.  Right now I have this :
>
> RewriteEngine On
> RewriteBase /
> RewriteCond %{Request_URI} !^/redirect\.html [NC]
> RewriteRule ^/$ /redirect.html
>
> And none of the pages I go to on the site get redirected.  I set up the
> rewrite log, and nothing is being entered into there (tailing it).  To
> ensure that Apache was executing my .htaccess file, I put some bogus
> code in it and it thru an error, so that part's working.

I often have a need to exclude something from rewriting, and I ususaly
do it by having a rule that would match it, but that does not change
it, and giving it the L flag.

Your problem I would solve like this:

RewriteRule ^/redirect∖.html$ /redirect.html [L]
RewriteRule ^/.*$                       /redirect.html

(Nortice also how your rule
RewriteRule ^/$ /redirect.html
would only match /, not every page)

Krist

--
krist.vanbesien@xxxxxxxxx
Solothurn, Switzerland

[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux