Вероятно кто-то нагуглит этот вопрос, поэтому решение friendly адресов для nginx кроется всего в нескольких location для
nginx + php-fpm.
1) определяет пути для статики
location ~ \.(jpg|jpeg|gif|ico|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|doc|docx|xls)$ {
root /path/to/site;
}
2) закрываем доступ для .htaccess
location ~ ^/(\.htaccess)$ {
return 404;
}
3) непосредственно сам rewrite для джумлы
location @friendlyurls {
rewrite ^/(.*)$ /index.php/$1 last;
}
тогда при запросе "/about-us" nginx реврайтнит сие в "/index.php/about-us".
4) далее для корня сайта
location / {
try_files $uri $uri/ @friendlyurls;
прочие параметры для php-fpm
}
5) для php файлов
location ~* \w+\.php$ {
try_files $uri $uri/ /index.php?$args;
прочие параметры для php-fpm
}
Итого у нас работают и friendly ссылки и прямые ссылки на php файлы.
Если там не php-fpm, а
apache за
nginx, то 3й location не нужен, а реврайт можно обыграть в настройках
proxy_pass в
location /.
Если же у вас
чистый apache, и ссылки не работают, то проверьте дистрибутив joomla и скачайте правильный .htaccess.