Как я могу сделать регистр Apache без учета использования .htaccess? - программирование
Подтвердить что ты не робот

Как я могу сделать регистр Apache без учета использования .htaccess?

Недавно я переключился с IIS на Apache, и, к сожалению, некоторые из моих ссылок имеют проблемы с капитализацией. Я видел довольно много людей, которые говорили о том, как переписывать URL-адреса, чтобы они были в нижнем регистре или в верхнем регистре, но мне нужно что-то, чтобы просто сделать регистр Apache нечувствительным. Это можно сделать с помощью .htaccess?

4b9b3361

Ответ 1

добавить

CheckSpelling on

в ваш .htaccess файл конечно, после включения RewriteEngine

поэтому окончательный код будет

RewriteEngine on
CheckSpelling on

Я думаю, что это лучший и безопасный способ.

Не забудьте изменить

AllowOverride none

до

AllowOverride All

внутри вашего файла httpd.conf, чтобы файлы .htaccess работали правильно.

Ответ 2

Если CheckSpelling не работает для вас, и вы используете PHP, вы можете добавить перенаправление PHP на страницу 404, чтобы перенаправить на строчную версию URL. Для начала, если вы еще этого не сделали, добавьте следующий код в ваш файл .htaccess (вы можете назвать файл как-нибудь иначе, чем 404.php, если хотите, но это должен быть файл PHP):

ErrorDocument 404 /404.php

Затем добавьте следующий код в начале 404.php (если вы используете HTTPS, измените http:// на https:// во второй строке):

if(preg_match("/[A-Z]/", $_SERVER["REQUEST_URI"])){
    header("location:http://" . $_SERVER["HTTP_HOST"] . strtolower($_SERVER["REQUEST_URI"]));
    exit();
}

Этот код использует простое регулярное выражение, чтобы проверить, содержит ли запрошенный URI заглавные буквы, и если он это делает, он перенаправляет на ту же страницу, но с строчными буквами.