Becky
Becky

Reputation: 5585

Prevent redireting for a specific URL

I'm redirecting if the url contains a specific word.

RewriteRule ^forum(/.*)?$ /homepage.html?no=%{QUERY_STRING} [R=301,L,NE,NC]

Is it possible to avoid redirecting for a specific url that has the above specific word?

E.g. The below gets redirect

http://www.exsample.com/forum/contactus.html?ypin9001234

to

http://www.exsample.com/homepage.html?no=ypin9001234

What I need is to continue the above redirect as it is but to avoid the redirect only for the below URL.

http://www.exsample.com/forum/members/gold/gold.html?ypin9001234

Note: The word gold is used only by this url.

Upvotes: 0

Views: 1709

Answers (2)

anubhava
anubhava

Reputation: 785196

You should use a RewriteCond with THE_REQUEST to match full URL with query string:

RewriteCond %{THE_REQUEST} !/forum/members/gold/gold\.html\?ypin9001234 [NC]
RewriteRule ^forum(/.*)?$ /homepage.html?no=%{QUERY_STRING} [R=301,L,NE,NC]

Upvotes: 2

Vrac
Vrac

Reputation: 1084

You can add a rewrite condition before your rewrite rule, e.g.:

RewriteCond %{REQUEST_URI} !^.*gold.*$
RewriteRule ^forum(/.*)?$ /homepage.html?no=%{QUERY_STRING} [R=301,L,NE,NC]

This will prevent any url containing the word gold from being rewritten. If you need to be more specific, just make the condition more precise:

RewriteCond %{REQUEST_URI} !^forum/members/gold.*$
RewriteRule ^forum(/.*)?$ /homepage.html?no=%{QUERY_STRING} [R=301,L,NE,NC]

etcetera...

Upvotes: 1

Related Questions