При подготовке к переносу сайта на Joomla на новый хостинг столкнулся с такой проблемой.
Домен на данном этапе еще не был перенаправлен на новый хостинг и для проверки и отладки использовался технический домен вида http://192.168.0.1/~username/ .
При включенном Перенаправление URL (Use URL Rewriting) все страницы, кроме домашней возвращали ошибку 404.
Отключение функции Перенаправление URL решало проблему 404, но в адресах появлялся index.php, что было не желательно.
Как оказалось, проблема в .htaccess . Он некорректно обрабатывал переадресацию при использовании технического домена, где «физическое» расположение папки с сайтом не соответствовало реальному.
Для решения данной проблемы оказалось достаточно добавить (скорректировать) строку с командой RewriteBase
RewriteBase /~username
А «username» это имя домена или имя базы данных?
~username — это имя папки, в которой лежит сайт.
Например, ваш тестовый сайт лежит /yourdomain.ru/testfolder/
В этом случае надо добавить/исправить в .htaccess строку RewriteBase /testfolder