Как сделать код нечувствительным к регистру на сервере Linux

Я работаю над веб-сайтом, который развертывается на сервере Linux. У меня есть небольшие изменения, чтобы сделать это. У меня есть папка read. Требование состоит в том, что если я ввожу URL localhost:80/tom/Read или ../READ или /read, ему необходимо перейти к read.php внутри папки read.

Я создал файл .htaccess в корневом каталоге. Размещенный ниже приведенный ниже код в файле, увидев страницу упомянутую здесь

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?

Ответы

Ответ 1

Вы можете легко заставить веб-сервер apache игнорировать этот случай, используя модуль mod_speling, который является частью стандартного дистрибутива apache:

CheckSpelling On
CheckCaseOnly On

После перезагрузки httpd вы можете получить доступ к read как read или read или read.

Ответ 2

Привет, я наконец получил решение. Помещенный ниже код в /etc/httpd/conf/httpd.conf.

LoadModule speling_module modules/mod_speling.so

<IfModule mod_speling.c>
  CheckSpelling On
  CheckCaseOnly On
</IfModule>

Затем перезапустите httpd:

sudo service httpd restart

И, наконец, убедитесь, что он включен:

sudo httpd -M | grep speling

Это должно дать speling_module (shared)

Спасибо за помощь для всех..

Ответ 3

Сначала установите speling_module. Затем включите LoadModule speling_module modules/mod_speling.so в файл httpd.conf, а затем включите

<IfModule mod_speling.c>
     CheckSpelling On
     CheckCaseOnly On
</IfModule>
в httpd.conf, затем перезапустите службу httpd, используя команду service httpd restart.

Ответ 4

Привет, я не уверен, что это помогает, но это простая рабочая область, которую я использовал, она использует очень базовую php-страницу, но она работает для сайта, в котором я нуждался.

Поместите этот код в файл htaccess

 AddType application/x-httpd-php .html .htm
 ErrorDocument 404 /404.php

Затем я создал файл php со следующим.

 <?php
 $aurl = $_SERVER['REQUEST_URI'];
 $lurl = strtolower($aurl);

 if($aurl != $lurl){
header('location:'.$lurl);
 } else {
header('location:/404.html');
 }
 ?>

В основном он получает ссылающийся url → store как $aurl

он затем делает его строчным → сохраняет как $lurl

если они не соответствуют ему, тогда попытается отобразить строчный url ($ lurl)

Если это не удается, страница не существует, ссылающийся URL-адрес теперь тот же ($ lurl == $aurl) поэтому он перенаправляется на соответствующую страницу 404 или может отображать дополнительный код.

Ответ 5

Кто-нибудь, помогите мне решить проблему, я не могу перенаправить прописные в строчные в Centos

Я пробовал все вышеперечисленные шаги, та же ошибка, кажется.

Например: Url/READ/WRITE вот что мне нужно