Hi. I did this for a website a moment ago.
Let’s say your landing page is landing.php and is placed at the root of your website.
Restore your default htacces (redirects to index, htacces don’t have to know your landing page)
Put this code at the top of landing.php:
<?php
session_start();
$_SESSION['splashscreen'] = true;
?>
Then in index.php of your current theme (before any html ouput):
<?php
session_start();
// check if user have already see landing.php
if (!$_SESSION['splashscreen'])
{
header("location: landing.php");
exit();
}
?>
Now every time user will request a page from your wordpress blog, the server will check if a session variable called ‘splashscreen’ exists. If it doesn’t exists, (the first time) it will redirect the browser to landing.php and stop executing the script on index.php.
Then when passing through landing.php, the session ‘splashscreen’ will exist and equal true, so the redirection won’t happen and the landing page won’t show again until the user clears his browser’s session (force it by hand or quit the browser) and if you redirect from your landing page to another page of your blog, the code placed in index.php will execute as usual .
Sorry if instructions are messy and don’t make sense, don’t have enough time to explain now, but if it does not work, tell me and I’ll explain more.