title: How do I make URLs case insensitive in Linux server
body: <p>I am working a website which is deployed on a Linux server. I have small changes to do on that. I have folder <code>read</code>. The requirement is that if I enter the URL <code>localhost:80/tom/Read</code> or <code>../READ</code> or <code>/read</code> it needs to navigate to <code>read.php</code> inside a <code>read</code> folder.</p>
  
  <p>I created a file .htaccess under a root directory. Placed following code mention below in the file by seeing the page  <a href="https://forums.digitalpoint.com/threads/how-do-i-make-linux-server-urls-case-insensitive.1790511/" rel="noreferrer">mentioned here</a></p>
  
  <pre><code>RewriteEngine On
  RewriteBase /tom/
  
  RewriteMap  lc int:tolower
  RewriteCond %{REQUEST_URI} [A-Z]
  RewriteRule (.*) ${lc:$1} [R=301,L]
  
  RewriteCond %{REQUEST_URI} ^system.*
  RewriteRule ^(.*)$ /index.php/$1 [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php/$1 [L]
  
  RewriteRule ![A-Z] - [S=26]
  RewriteRule ^(.*)(A)(.*)$ $1a$3 [N,R=301]
  RewriteRule ^(.*)(B)(.*)$ $1b$3 [N,R=301]
  RewriteRule ^(.*)(C)(.*)$ $1c$3 [N,R=301]
  RewriteRule ^(.*)(D)(.*)$ $1d$3 [N,R=301]
  RewriteRule ^(.*)(E)(.*)$ $1e$3 [N,R=301]
  RewriteRule ^(.*)(F)(.*)$ $1f$3 [N,R=301]
  RewriteRule ^(.*)(G)(.*)$ $1g$3 [N,R=301]
  RewriteRule ^(.*)(H)(.*)$ $1h$3 [N,R=301]
  RewriteRule ^(.*)(I)(.*)$ $1i$3 [N,R=301]
  RewriteRule ^(.*)(J)(.*)$ $1j$3 [N,R=301]
  RewriteRule ^(.*)(K)(.*)$ $1k$3 [N,R=301]
  RewriteRule ^(.*)(L)(.*)$ $1l$3 [N,R=301]
  RewriteRule ^(.*)(M)(.*)$ $1m$3 [N,R=301]
  RewriteRule ^(.*)(N)(.*)$ $1n$3 [N,R=301]
  RewriteRule ^(.*)(O)(.*)$ $1o$3 [N,R=301]
  RewriteRule ^(.*)(P)(.*)$ $1p$3 [N,R=301]
  RewriteRule ^(.*)(Q)(.*)$ $1q$3 [N,R=301]
  RewriteRule ^(.*)(R)(.*)$ $1r$3 [N,R=301]
  RewriteRule ^(.*)(S)(.*)$ $1s$3 [N,R=301]
  RewriteRule ^(.*)(T)(.*)$ $1t$3 [N,R=301]
  RewriteRule ^(.*)(U)(.*)$ $1u$3 [N,R=301]
  RewriteRule ^(.*)(V)(.*)$ $1v$3 [N,R=301]
  RewriteRule ^(.*)(W)(.*)$ $1w$3 [N,R=301]
  RewriteRule ^(.*)(X)(.*)$ $1x$3 [N,R=301]
  RewriteRule ^(.*)(Y)(.*)$ $1y$3 [N,R=301]
  RewriteRule ^(.*)(Z)(.*)$ $1z$3 [N,R=301]
  </code></pre>
  
  <p>But it is not working.</p>
  
  <p>I am new to Linux environment. I don't know about mod_speling. Is that a file? Where it will be located in Linux server?</p>