Я унаследовал веб-сайт, где URL-адреса написаны заглавными буквами, но файловая структура на сервере написана строчными буквами. Это не было проблемой, пока сайт не был переведен на Apache.
Я не хочу перенаправлять существующие страницы на структуру нижнего регистра, потому что сайт устарел и хорошо ранжируется в Google и Bing.
Я внедрил mod_speling в свой .htaccess:
<IfModule mod_speling.c>
CheckCaseOnly on
CheckSpelling on
</IfModule>
Однако он переписывает все URL-адреса в нижний регистр, что в глазах Google является новым URL-адресом.
Есть ли способ обрабатывать все URL-адреса как нечувствительные к регистру, сохраняя при этом исходный URL-адрес?
Например: domain.com/Folder1/folder.htm
разрешится в том же месте, что и domain.com/folder1/Folder.htm
?
Apache-2.4 переписать веб-сайт
PublicDisplayName
1 ответ
Вы могли бы использовать mod_rewrite
чтобы переписать все ваши запросы в нижний регистр. Это может выглядеть так:
RewriteEngine On
RewriteMap lc int:tolower
RewriteRule ^(.*) ${lc:$1}
Учитывая эти файлы на диске:
$ ls
file1.txt file2.txt file3.txt index.html
И эти ссылки в index.html
:
<ul>
<li><a href="File1.txt">File1</a></li>
<li><a href="FILE2.txt">FILE2</a></li>
<li><a href="file3.txt">file3</a></li>
</ul>
Показанная конфигурация перезаписи позволяет всем трем ссылкам получить ожидаемый файл. Перезапись не создает никакого перенаправления клиенту, поэтому клиент (например, Google) не знает о перезаписи.
жаворонки