Назад | Перейти на главную страницу

CWP7 - mod_rewrite не работает?

Недавно мне пришлось перейти с cPanel на CentOS Web Panel, и в именах файлов возникла проблема с учетом регистра, поэтому "filewhatEver.jpg" не обнаруживается в URL-адресе "filewhatever.jpg" (раньше в cPanel проблем не было) .

У этого сайта (всего их 4) .htaccess имеет только базовую конфигурацию для сайтов WordPress:

RewriteEngine on
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

mod_rewrite активен (указан в активных модулях), но когда я пытаюсь:

RewriteMap insensitive tolower:
RewriteRule ^[\/]*(.*)$ /${insensitive:$1} [R,L]

Не повезло. Изменить: дает мне «Внутреннюю ошибку сервера».

Любая идея?

Поскольку базовые имена файлов имеют смешанный регистр, вы не можете использовать карту перезаписи для преобразования запроса в нижний регистр, поскольку он все равно не будет соответствовать. (Кстати, карты перезаписи могут быть определены только в конфигурации основного сервера, а не в .htaccess.)

Однако вы можете использовать mod_speling (один l) для достижения соответствия файлов без учета регистра.

Сначала вам нужно убедиться, что на вашем сервере включен mod_speling. Затем добавьте следующие директивы в конфигурацию вашего виртуального хоста (или .htaccess файл):

CheckSpelling on
CheckCaseOnly on

Обратите внимание, однако, что есть дополнительные накладные расходы на использование mod_speling, и при обнаружении файла запускается внешнее перенаправление. Перенаправление необходимо для SEO, но будет плохо для производительности сервера, если вы запрашиваете ресурсы изображения в смешанном случае (как это выглядит?).

Я предполагаю, что mod_speling должен быть включен по умолчанию на вашем старом сервере cPanel, поскольку по умолчанию это не было бы нечувствительным к регистру.

mod_speling действительно только для неправильно оформленных запросов с внешних сайтов. Любые внутренние запросы действительно должны быть «исправлены», чтобы соответствовать правильному регистру базового файла.