Kerans
Kerans

Reputation: 125

How do I express this with a RewriteCond?

I want to redirect users to an error page if they enter any URL not starting with 'en' or 'fr'. I cannot figure out how to express this as a RewriteCond / RewriteRule.

To be clearer, some examples:

http://mysite.com/en/foo/ ==> Cool, do nothing
http://mysite.com/fr/foo/ ==> Cool, do nothing

http://mysite.com/foo/ ==> ERROR, redirect to /404/index.php    
http://mysite.com/blah/foo/ ==> ERROR, redirect to /404/index.php

I'm sure it must be pretty simple but I could not find this specific scenario addressed. Thanks for your time.

Upvotes: 0

Views: 185

Answers (1)

Amber
Amber

Reputation: 526643

^/(?!en|fr).*

This regex should match any path which doesn't begin with /en or /fr. The (?!expression) syntax is a negative lookahead; it matches a position where the contained expression doesn't start matching.

Upvotes: 1

Related Questions