views:

34

answers:

1

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.

A: 
^/(?!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.

Amber
Holy smokes, that was fast! Thanks Dav. Would you be so kind as to write the complete RewriteRule instruction for me? As I'm a newbie, I'm not sure where that would go... Cheers!
Terry