If you try to open in browser it should show some content in browser. but it giving 404.
Where "show some content" may = "download the file". (I'd managed to forget this, so I tried on my one-and-only embedded font.)
Just to double check: Do you get your server's ordinary 404 page, the same one you'd get if you typed garbage in the address bar? Error logs probably won't say anything beyond "file could not be found" -- but I'm pretty sure they'll show the real location of the file if there was any rewriting involved.
Further double checking: You're testing this by either typing the name directly into your browser, or using something like Fetch's "Web View" function on the raw file?
I don't know if all ftp-and-similar programs work the same way. If I use WebView it is treated exactly as if I had typed the name in my browser's address bar, meaning that the request passes through config file and htaccess before I'm allowed to see it.
look in the error log for the time stamp corresponding to when you requested .ttf or .moff files and make note of the file path the server attempted to access for that request. then figure out why that file doesn't exist in the expected location or why the server isn't looking for that file in the expected location. first you should verify where the server is looking for that file. in the error log...
If security is blocking access you would not see a 404 ("File does not exist" in error logs). You would see a 403 or 503 --there are other possibilities, but those are the most likely-- with explanation. Details depend on logging level, which you can't change if you are on shared hosting. On mine, a 403 says something unhelpful like "Denied by server configuation".
It will help if you quote a sample from logs showing an attempt to access the file. Show BOTH the access log AND the error log entries.