Недавно мне пришлось перейти с 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]
Не повезло. Редактировать: выдает «Внутреннюю ошибку сервера».
Есть идеи?
Поскольку базовые имена файлов имеют смешанный регистр, вы не можете использовать перезапись map, чтобы преобразовать запрос в нижний регистр, поскольку он все равно не будет соответствовать. (Между прочим, перезапись карт может быть определена только в конфигурации основного сервера, а не в .htaccess
.)
Однако вы можете использовать mod_speling (one l
), чтобы добиться этого. -нечувствительное сопоставление файлов.
Вы должны сначала убедиться, что mod_speling включен на вашем сервере. Затем добавьте следующие директивы в конфигурацию вашего виртуального хоста (или файл .htaccess
):
CheckSpelling on
CheckCaseOnly on
Обратите внимание, однако, что есть дополнительные накладные расходы на использование mod_speling, и при обнаружении файла запускается внешнее перенаправление. . Перенаправление необходимо для SEO, но будет плохо для производительности сервера, если вы запрашиваете ресурсы изображения в смешанном случае (как это выглядит?).
Я предполагаю, что mod_speling должен быть включен по умолчанию на вашей старой cPanel server, так как по умолчанию регистр не учитывался.
mod_speling действительно только для неправильно оформленных запросов с внешних сайтов. Любые внутренние запросы действительно должны быть «исправлены», чтобы соответствовать правильному регистру базового файла.