Я написал следующие правила для перенаправления на URL-адрес в нижнем регистре, если какой-либо символ в URL-адресе является верхним регистром
RewriteMap lc int:tolower
RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule . https://www.example.com${lc:%{REQUEST_URI}} [R=301,L]
Вышеупомянутое правило может перенаправить https://www.example.com/HelloWorld на https://www.example.com/helloworld
Это правило выше работало отлично, но затем я хотел отложить нижний регистр для всех URL-адресов, которые соответствуют фактическим URL-адресам файлов. Например, я хотел отложить указанное выше правило для
https://www.example.com/ABC.png, если файл AB C .png действительно существует на сервере.
Для этого я добавил строку RewriteCond %{REQUEST_FILENAME} !-f
, как показано ниже
RewriteMap lc int:tolower
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule . https://www.example.com${lc:%{REQUEST_URI}} [R=301,L]
Несмотря на вышеуказанное изменение https://www.example.com/ABC.png перенаправляется на ttps: // www.example.com/abc.png. Это должно быть очень просто, но не работает.