Rewrite Rules (not) - Lowercase URLs, but only for some specific paths

This took me enough time to get right to post a little blog post about it:

        RewriteEngine on
        RewriteMap lc int:tolower
        RewriteCond %{REQUEST_URI} (shared|Shared|download|Download)/[A-Z]
        RewriteRule (.*) ${lc:$1} [R=301,L]

Note that this doesn't work in .htaccess - you have to put it higher up in the Apache configuration.

I tried extra RewriteConds, to no avail, somehow Apache seems to add [OR]s anyway, even though the documentation states that you have to specify them (there is no [AND] directive). I tried adding the "shared" and "download" to the RewriteRule, leading to infinite redirects. Of course adding [NC] to the RewriteCond will also lead to infinite redirects.

Apache configuration is so much fun.

Comments

Post new comment

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options

By submitting this form, you accept the Mollom privacy policy.