如何在 Linux 服务器中使 URL 不区分大小写 [英] How do I make URLs case insensitive in Linux server
问题描述
我正在开发一个部署在 Linux 服务器上的网站.我有一些小的改动要做.我有文件夹read
.要求是,如果我输入 URL localhost:80/tom/Read
或 ../READ
或 /read
它需要导航到read.php
位于 read
文件夹内.
I am working a website which is deployed on a Linux server. I have small changes to do on that. I have folder read
. The requirement is that if I enter the URL localhost:80/tom/Read
or ../READ
or /read
it needs to navigate to read.php
inside a read
folder.
我在根目录下创建了一个文件 .htaccess.通过查看页面 此处提到
I created a file .htaccess under a root directory. Placed following code mention below in the file by seeing the page mentioned here
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]
但它不起作用.
我是 Linux 环境的新手.我不知道 mod_speling.那是文件吗?它将位于 Linux 服务器中的什么位置?
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?
推荐答案
您可以使用 mod_speling 模块,它是标准 apache 发行版的一部分:
You can easily make the apache webserver ignore the case by using the mod_speling module, which is part of the standard apache distribution:
CheckSpelling On
CheckCaseOnly On
重新启动 httpd 后,您可以将 read
访问为 Read
或 READ
或 read
.
After restarting httpd you can access read
as Read
or READ
or read
.
这篇关于如何在 Linux 服务器中使 URL 不区分大小写的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!