There is something even better you can do, for free :) Dale suggested it but didn't expand on it. Please let me explain this to you.
Create a new folder in the account root folder, above public_html i.e. in the same folder where public_html lives. The convention I use and propose is sudomain_html. For example, if my main site is www.example.com and the subdomain I am creating is foobar.example.com I create a folder foobar_html in the account's root folder.
Then create the subdomain in cPanel. It will ask you where to put the files. Delete the default entry of public_html/foobar and replace it with foobar_html. Now you can restore your site in your subdomain without much ado.
Why does that work? .htaccess files are designed to cascade through directories. Apache –your web server– looks in the folder of the file being accessed (e.g. Joomla's index.php) and all of its parent directories, until it hits the filesystem root, for .htaccess files. Then it merges them together and tries to make heads and tails of them. This is a very powerful and useful feature but gets in your way when you're trying to have an entire site inside another site's main folder e.g. a site in a subdomain directory inside your main site's public_html folder. By creating a new folder outside public_html we prevent that unwanted cascading.
Nicholas K. Dionysopoulos
Lead Developer and Director
🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!