Loading two post layouts for the same post with different url

You can pass the layout name as a GET parameter and then change the design based on that. So your URL should be something like this:

http://domain.com/post-name?layout=layout-1

Now in your single.php file or whatever file that renders the template, you can do this check to show the different layouts:

<?php 
// If the header is different two, you should call for different headers too, 
// Check this for showing different headers
// https://developer.wordpress.org/reference/functions/get_header/
if( isset( $_GET['layout'] )  && $_GET['layout'] == 'layout-1' ) {
    // Show the design for for the first layout 
}
else if ( ... ) {
    // Show the design for other layouts 
}