0

I'm using a case-sensitive web application to serve a few URLs that will be printed, so we expect UsErs to type them with inexact case. How do I tell mod_rewrite to redirect to the correct case URL as in [NC] without also redirecting on the case-exact URL and creating a loop?

joeforker
  • 2,349
  • 4
  • 25
  • 34

3 Answers3

3

This depends on a few things in your web application, but you could:

  1. Use mod_speling to force the correct capitalization of filenames and directories. This requires "real" filenames.
  2. Use RewriteMap to rewrite the url (as seen here):

In .htaccess:

RewriteEngine on
RewriteBase /
RewriteMap insensitive tolower:
RewriteRule ^[\/]*(.*)$ /${insensitive:$1} [R,L]
Dave Drager
  • 8,315
  • 28
  • 45
1

First off, if you can use mod_speling that's easiest, but that requires actual files, not stuff hiding inside an application somehow.

Simply set a condition so the rewriterule doesn't happen if the request is capitalized properly, like so:

RewriteCond %{REQUEST_URI} !^/Your/File$
RewriteRule ^/your/file$ /Your/File [NC,R]
freiheit
  • 14,334
  • 1
  • 46
  • 69
0

Mount a Samba share to /var/www and consider the Samba-share folder your wwwroot ;-))

Quandary
  • 974
  • 4
  • 18
  • 34