It seems to be the same issue mentioned here, check it out,
2nd Answer:
https://magento.stackexchange.com/questions/202135/magento-2-multistore-url-giving-404-error
========================
There are 2 solution for that you can follow which one liked to use :-
First Option
System -> Configuration -> Web -> Url Options -> Add Store Code to Urls
Set Yes to this options, your store code will automatically append on store switch, flush caches. This solution credit goes to @Priyank
Second Option
1) Create store view.
2) select France store from admin panel and change base url, base link url, Secure base url, Secure base link url from admin panel (Stores -> Configuration -> General -> Web) :
http://example.com/business/fr/
3) Create folder in root directory with name fr
4) Copy htaccess & index.php from root
5) Replace index.php code following code
$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER);
/** @var \Magento\Framework\App\Http $app */
$app = $bootstrap->createApplication('Magento\Framework\App\Http');
$bootstrap->run($app);
With Below code
$params = $_SERVER;
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE] = 'fr';
//store code as same in admin panel
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_TYPE] = 'store';
$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $params);
/** @var \Magento\Framework\App\Http $app */
$app = $bootstrap->createApplication('Magento\Framework\App\Http');
$bootstrap->run($app);
6) Create symlinks
ln -s /var/www/html/http://example.com/business/app/ app
ln -s /var/www/html/http://example.com/business/lib/ lib
ln -s /var/www/html/http://example.com/business/pub/ pub
ln -s /var/www/html/http://example.com/business/var/ var
Here /var/www/html/http://example.com/business/
is path of your project to root directory change as per your own configuration.
Don't forgot flush cache.
===============================
Cheers,
Dasitha.