Thanks Lee, for your reply. I could use !^/(files|admin|user|product|go), however this would allow all wildcard pattern for the URI string like "user/login" ? or "products/newarrival" ?
Is why I tried with (.*) but the wildcard string still not getting picked up by the rule. On Sat, Apr 30, 2011 at 2:22 AM, Lee <lee...@gmail.com> wrote: > > > On 30/04/2011 05:46, Arunkumar Janarthanan wrote: > > Hi, > > > > I have a request that the site contains specific URI pattern should > > go to another URL while the other URI patterns goes to 404 page of > > external site. > > > > Here below the rule I have written, however this is not working for > > wildcard match of the URI pattern. > > > > RewriteCond %{REQUEST_URI} > > !^/(files(.*)|admin(.*)|user(.*)|product(.*)|go(.*))$ RewriteRule .* > > http://www.abc.com/page-not-found [R=301,NC,L] > > RewriteCond %{REQUEST_URI} !^/(files|admin|user|product|go) > > Round brackets are good for grouping OR clauses (produce|admin), > and good for storing back-references (.*). But you are not using > back-references, so you can drop a lot of those brackets. Also, > you can simply your use of the gobble-everything operator (.*) > by putting it at the end - although why would you need it? > > You simply need to match a few phrases at the beginning of the > string. > > So: > > ! If REQUEST_URI does not match > ^ from the start > / oblique > (files|admin|user|product|go) any of these phrases > > HTH > Lee > >