apache - 如何在 Linux 服务器中使 URL 不区分大小写

标签 apache .htaccess mod-rewrite mod-speling

我正在开发一个部署在 Linux 服务器上的网站。我对此有一些小的改动。我有文件夹 read .要求是,如果我输入 URL localhost:80/tom/Read../READ/read它需要导航到 read.phpread 内文件夹。

我在根目录下创建了一个文件 .htaccess 。通过查看页面 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 服务器的哪个位置?

最佳答案

您可以使用 mod_speling 轻松让 apache 网络服务器忽略大小写。模块,它是标准 apache 发行版的一部分:

CheckSpelling On
CheckCaseOnly On

重启httpd后可以访问readReadREADread .

关于apache - 如何在 Linux 服务器中使 URL 不区分大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14814419/

相关文章:

apache - 如何使用 Apache httpd 重定向两个不同的端口?

php - .htaccess auto_prepend_file 如果 url 包含

php - 带有 .htaccess 或 PHP 的动态子域页面

linux - .htaccess mod_rewrite 用于 web 服务以及隐藏其他文件

linux - Apache2 在没有 LD_LIBRARY_PATH 的情况下启动

python - 操作系统错误 : Cannot load native module 'Crypto.Cipher._raw_ecb' on Apache mod_wsgi CentOS 8

apache - WAMP 服务器保持黄色,但服务器运行正常?

linux - Amazon Linux AMI 上没有可用的包 httpd

regex - [^/]+ 在 htaccess 中的解释

.htaccess - RewriteRule 将强制尾随斜杠