I have just found out what was the issue. We need to mention physical folder same as virtual folder. Patch before attribute is very important here.

Add below attributes in our abc.xyz.com website settings

        <site name="abc.xyz.com" patch:before="site[@name='xyz.com']" 
        virtualFolder="/abc" physicalFolder="/abc"
        targetHostName="xyz.com" 
    
    ....
    >
https://sdn.sitecore.net/Articles/Administration/Configuring%20Multiple%20Sites/Adding%20New%20Site/site%20Attribute%20Properties/virtualFolder.aspx