Как заставить работать .htaccess и nginx?
Никак, htaccess не работает в nginx. Надо настраивать всё в виртуальном хосте Nginx. Конвертеры бред, сам когда переходил на nginx пытался надурить судьбу, в итоге просто почитал документацию и сам написал все правила.
Вот такой конфиг должен помочьserver {
        server_name www.site.com site.com;
        listen 80;
        port_in_redirect off;

        root /var/www/site/public; <----ВНИМАНИЕ НА ЭТУ СТРОКУ, PUBLIC ОБЯЗАТЕЛЕН
        index index.php;

        location / {
                try_files $uri $uri/ /index.php?$args;
        }

        # Cache static files for as long as possible
        location ~*.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf|cur)$ {
        expires max;
        log_not_found off;
        access_log off;
        }

        location ~ \.php$ {
                try_files $uri =404;
                include fastcgi_params;
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
                fastcgi_split_path_info ^(.+\.php)(.*)$;
                fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
}