Определенно лучший способ - использовать перенаправление 301. Это рекомендуется Google.
Что-то вроде этого в htaccess должно работать:
Redirect 301 / http://www.example.com/
лучше сделать это на уровне сервера, а не на уровне приложения (правила переписывания apache, чем php). Это потому, что это будет быстрее, и это роль сервера, а не приложения.
Однако, если у вас есть один файл htaccess для всех доменов, вы можете использовать условное выражение, например:
RewriteCond %{HTTP_HOST} !^www\.example\.com
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
, который выполняет перенаправление 301 всегда, когда текущий домен не www.example.com.
Обратите внимание, что example.com и www.example.com - это две разные вещи! поэтому вы должны решить, какой из них вы хотели бы использовать (с или без www) и пойти на это.