donohoe
donohoe

Reputation: 14123

Rewrite URLs with .htaccess but ignore specific Directories

I have a directory on a site:

In it I have a .htaccess file.

I want it to take any URL like this:

And rewrite it to:

Except for any URLs that refer to these directories:

I have the first part working, but unable to tell it to exclude files in certain directories:

Options +FollowSymlinks
RewriteEngine on

RewriteRule ^([^/]+)/([^/]+) index.php?arg1=$1&arg2=$2 [NC]

Update:

This works in a very basic and simple sense:

RewriteRule ^css - [L,NC]
RewriteRule ^javascript - [L,NC]
RewriteRule ^images - [L,NC]
RewriteRule ^([^/]+)/([^/]+) index.php?arg1=$1&arg2=$2 [NC]

but I'm sure there is a more elegant solution?

Upvotes: 1

Views: 4741

Answers (2)

summea
summea

Reputation: 7593

You might be able to use RewriteCond to check if an actual file exists... at least, I use this for websites when I want things like CSS, Javascripts, and images to be accessible (without the request being redirected.)

Here's the line I use:

# only rewrite if the requested file doesn't exist
RewriteCond %{REQUEST_FILENAME} !-s

Let me know if that works for you!

Upvotes: 1

Rick
Rick

Reputation: 1258

I think the keyword you're looking for is RewriteCond. It's pretty similar to what you ended up with.

RewriteCond %{REQUEST_URI} !^(css|javascript|images)
RewriteRule ^([^/]+)/([^/]+) index.php?arg1=$1&arg2=$2 [NC]

Upvotes: 2

Related Questions