Настройка .htaccess для ошибки 404 на двух языках
Есть сайт на веб-сервере apache. Необходимо настроить .htaccess так, чтобы при переходе по адресу вида example.com/несуществующая_страница - отображалась страница 404.html, а при переходе по адресу вида example.com/ru/несуществующая_страница отображалась страница ru/404.html.
Один в один проблема решается тут: https://discourse.gohugo.io/t/404-pages-on-localhost-for-multilingual-site-failing/40568/2 Только для локального сервера Hugo:
[[redirects]]
from = '/ru/**'
to = '/ru/404.html'
status = 404
[[redirects]] # Default lang, should be last.
from = '/**'
to = '/404.html'
status = 404
Текущая версия моего .htaccess такая:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /404.html [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ru/(.*)$ /ru/404.html [L]
Перекидывает и с example.com/ru/test
и с example.com/test
на английскую версию 404.html, т.е. на ту, которая лежит в корне сайта.
Источник: Stack Overflow на русском