1 вариант
Самый простой вариант - два домена: site.com и m.site.com.
1. На домене site.com показываем ссылку "Мобильная версия сайта" на m.site.com.
2. На домене m.site.com - ссылку "Полная версия сайта" на site.com.
2 вариант
Если хотите, чтобы обе версии сайта были доступны по одному домену site.com.
1. Если у пользователя не установлен флаг, определяющий версию сайта (см. пункт 2), то определяем, зашёл ли пользователь с мобильного браузера (
detectmobilebrowsers.com).
2. Если пользователь зашёл с мобильного браузера, то записываем некий флаг в сессию или куки. Например
$_SESSION['mobile'] = 1
.
3. Если установлен флаг мобильной версии, то отображаем мобильную версию и ссылку на "Полную версию сайта", иначе - полную версию и ссылку на "Мобильную версию сайта".
4. При переходе по одной из этих ссылок осуществляется запуск скрипта, устанавливающего
$_SESSION['mobile'] = 1
(для мобильной версии сайта) или
$_SESSION['mobile'] = 0
(для полной версии сайта), и делающего редирект обратно на предыдущую страницу. Возврат к шагу 1.