Why does WordPress redirect when I separate wp-core and wp-content?

wp-login.php is an actual file that is directly loaded up instead of using a rewrite rule. If you look at file listing in /var/www/vhosts/www.example.com/, you’ll probably will not see the wp-login.php file. But if you check /var/www/vhosts/www.example.com/wp-core/, you’ll probably find it if I understand your configuration correctly. This means your login URL is actually: http://www.example.com/wp-core/wp-login.php

Now there is another issue with your current setup. WordPress doesn’t know the URL to where the core files and hence the admin area of the site. By default, WordPress uses the same URL for the public side (home url) and the installation folder (site url). You can configure this in your wp-config.php file:

define( 'WP_SITEURL', 'http://example.com/wp-core' ); // Where the WP core is
define( 'WP_HOME', 'http://example.com/' ); // Where the public goes to view your blog