.htaccess in the public_folder may not work. The best alternative is for you to contact the hosting company and ask to them to change the document root to /public_html/public. It will, for sure, work.
I upload the files via ftp to a directory with in the root (usually something like html_www, but depends on host). Very important is to manually set folder and file permissions otherwise you will leave the files open for access which isn't good. Great your sub domain through the cpanel. Forward the sub domain to the public folder.
Note: This isn't the best solution due to security reasons, but it works. Typically you only want the contents of the public directory in your root. But many shared hosting providers don't bother help you set up the proper way and allow you to over ride the htaccess or PHP.ini files.