You can set your own custom Magento admin URL in:
System -> Configuration -> [ADVANCED] -> Admin -> Admin Base URL
- Use Custom Admin URL = (YES)
- Custom Admin URL = https://backend.domain.com
NOTE: Make sure you have added a ServerAlias directive to your virtual host configuration for backend.domain.com and that you have a SSL cert or wildcart setup for HTTPS traffic on that subdomain or you will lock yourself out the admin.
Rules for your .htaccess file to prevent duplicate urls and redirect directly to admin dashboard:
# rewrite main domain /admin to custom admin backend
RewriteCond %{HTTP:HOST} ^www\.domain\.com$
RewriteCond %{REQUEST_URI} ^/admin
Rewriterule (.*) https://backend.domain.com [R=301,L]
# rewrite any backend domain request that is not /admin to /admin
RewriteCond %{HTTP:HOST} ^backend\.domain\.com$
RewriteCond %{HTTP_COOKIE} !^.*adminhtml.*$ [NC]
RewriteCond %{REQUEST_URI} !/admin/
RewriteRule .* %{REQUEST_URI}index.php/admin/ [R=301,L]
The solution for Magento 2 is pretty simple. Just configure as the main domain name: backend.domain.com. So the admin will be available at backend.domain.com/admin.
Change scope to the storeview, and enter www.domain.com as the store domain name. So the store will be available at www.domain.com.