Задать вопрос
VladSavelev
@VladSavelev
Good man

Некоректно работает tolower, какие могут быть причины?

Нужно сделать задачу по трансформации в нижний регистр урлов.
Использовал на локалке,стейдже данный код, все было отлично и прекрасно отрабатывало.
Но на проде случилась беда, редиректит на главную страницу если писать большими буквами.
Для апатча:
RewriteMap  lc int:tolower        
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/html>
            Options +Indexes +FollowSymLinks +MultiViews
            AllowOverride All
            Require all granted
        </Directory>

Для .htaccess
RewriteEngine On
RewriteBase / 
RewriteCond %{REQUEST_URI} ^[^A-Z]*[A-Z].*
RewriteRule ^ ${lc:%{REQUEST_URI}} [L,R=301]

В итоге мой .htaccess выглядит так:
RewriteEngine On
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

<IfModule mod_headers.c>
    Header set X-Content-Type-Options "nosniff"
</IfModule>

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>



RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^[^A-Z]*[A-Z].*
RewriteRule ^ ${lc:%{REQUEST_URI}} [L,R=301]


    RewriteCond %{HTTP_HOST} ^bodree\.ru$ [NC]
    RewriteRule ^(.*)$ https://www.bodree.ru/$1 [R=301,L]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Redirect Trailing Slashes If Not A Folder...
    # index.php to /
    RewriteCond %{THE_REQUEST} ^(.*)\.php
    RewriteRule ^(.*)\.php$ /$1 [R=301,L]

    RewriteCond %{THE_REQUEST} ^(.*)\.html
    RewriteRule ^(.*)\.html$ /$1 [R=301,L]

    RewriteCond %{THE_REQUEST} ^(.*)\.aspx
    RewriteRule ^(.*)\.aspx$ /$1 [R=301,L]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    Options +FollowSymlinks
</IfModule>

Кто знает в чем может быть причина того что он редиректит на главную когда видит какие-то большие буквы, подскажите пожалуйста.
  • Вопрос задан
  • 106 просмотров
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы