______ _____ /\__ _\ __ /'\_/`\ /\`\ /\ _`\ \/_/\ \//\_\ /\ \\/_/ ____ ___ ____\ \ \/\_\ \ \ \\/\ \\ \ \__\ \ /',__\ / __`\ /',__\\ \ \/_/_ \ \ \\ \ \\ \ \_/\ \ /\__, `\ /\ \L\ \/\__, `\\ \ \_\ \ \ \_\\ \_\\ \_\\ \_\\/\____/ \ \____/\/\____/ \ \____/ \/_/ \/_/ \/_/ \/_/ \/___/ \/___/ \/___/ \/___/ ____ ___ __ /\ _`\ /\_ \ /\ \__ __ \ \,\L\_\ ___\//\ \ __ __\ \ ,_\/\_\ ___ ___ ____ \/_\__ \ / __`\\ \ \ /\ \/\ \\ \ \/\/\ \ / __`\ /' _ `\ /',__\ /\ \L\ \/\ \L\ \\_\ \_\ \ \_\ \\ \ \_\ \ \/\ \L\ \/\ \/\ \/\__, `\ \ `\____\ \____//\____\\ \____/ \ \__\\ \_\ \____/\ \_\ \_\/\____/ \/_____/\/___/ \/____/ \/___/ \/__/ \/_/\/___/ \/_/\/_/\/___/ http://www.tim-international.net This contribution will let you configure several regional domains of your one and same osCommerce installation. Search engines loves it. For advanced users only! Example: www.domain.com - english language shop www.domain.fr - french language shop www.domain.de - german language shop ###################################################################### ########################### INSTRUCTIONS ############################# ###################################################################### # 1.1 Virtual hosts Either set up several top domains or sub domains all mounted to your one and same osCommerce installation directory. Option A - Top domains www.domain.com => /home/example/vhosts/domain.com/public_html www.domain.fr => /home/example/vhosts/domain.com/public_html www.domain.de => /home/example/vhosts/domain.com/public_html Option B - Sub domains en.domain.com => /home/example/vhosts/domain.com/public_html fr.domain.com => /home/example/vhosts/domain.com/public_html de.domain.com => /home/example/vhosts/domain.com/public_html Options C - Mixed domains www.domain.com => /home/example/vhosts/domain.com/public_html fr.domain.com => /home/example/vhosts/domain.com/public_html de.domain.com => /home/example/vhosts/domain.com/public_html ###################################################################### # 2.1 In catalog/includes/configure.php *** Find *** define('HTTP_SERVER', 'http://www.domain.com'); define('HTTPS_SERVER', 'http://www.domain.com'); define('HTTP_COOKIE_DOMAIN', 'www.domain.com'); define('HTTPS_COOKIE_DOMAIN', 'www.domain.com'); *** Change to *** define('HTTP_SERVER', 'http://' . (($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : 'www.domain.com')); define('HTTPS_SERVER', 'http://' . (($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : 'www.domain.com')); define('HTTP_COOKIE_DOMAIN', (($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : 'www.domain.com')); define('HTTPS_COOKIE_DOMAIN', (($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : 'www.domain.com')); ###################################################################### # 2.2 In catalog/includes/application_top.php (Note: Skip to 2.2B for sub domain solution) *** Find *** // set the language if (!tep_session_is_registered('language') || isset($HTTP_GET_VARS['language'])) { if (!tep_session_is_registered('language')) { tep_session_register('language'); tep_session_register('languages_id'); } include(DIR_WS_CLASSES . 'language.php'); $lng = new language(); if (isset($HTTP_GET_VARS['language']) && tep_not_null($HTTP_GET_VARS['language'])) { $lng->set_language($HTTP_GET_VARS['language']); } else { $lng->get_browser_language(); } $language = $lng->language['directory']; $languages_id = $lng->language['id']; } *** Replace with, and edit domain names *** // set the language // BOF: [TiM's osC Solutions] SEO Regional Domains if (!tep_session_is_registered('language')) { tep_session_register('language'); tep_session_register('languages_id'); } include(DIR_WS_CLASSES . 'language.php'); $lng = new language(); // top domain switch switch (str_replace('www.', '', $_SERVER['SERVER_NAME'])) { case 'domain.dk': case 'dk.domain.com': $lng->set_language('da'); break; case 'domain.de': case 'de.domain.com': $lng->set_language('de'); break; case 'domain.fi': case 'fi.domain.com': $lng->set_language('fi'); break; case 'domain.fr': case 'fr.domain.com': $lng->set_language('fr'); break; case 'domain.no': case 'no.domain.com': $lng->set_language('nb'); break; case 'domain.se': case 'se.domain.com': $lng->set_language('sv'); break; case 'domain.uk': case 'uk.domain.com': $lng->set_language('en'); break; default: $lng->set_language('en'); break; } $language = $lng->language['directory']; $languages_id = $lng->language['id']; // EOF: [TiM's osC Solutions] SEO Regional Domains ______________________________________________________________________ (Optional! If you always want to force language currency.) *** Find *** // currency if (!tep_session_is_registered('currency') || isset($HTTP_GET_VARS['currency']) || ( (USE_DEFAULT_LANGUAGE_CURRENCY == 'true') && (LANGUAGE_CURRENCY != $currency) ) ) { if (!tep_session_is_registered('currency')) tep_session_register('currency'); if (isset($HTTP_GET_VARS['currency']) && $currencies->is_set($HTTP_GET_VARS['currency'])) { $currency = $HTTP_GET_VARS['currency']; } else { $currency = (USE_DEFAULT_LANGUAGE_CURRENCY == 'true') ? LANGUAGE_CURRENCY : DEFAULT_CURRENCY; } } *** Change to *** // currency // BOF: [TiM's osC Solutions] SEO Regional Domains $currency = LANGUAGE_CURRENCY; // EOF: [TiM's osC Solutions] SEO Regional Domains ###################################################################### #2.3 In catalog/includes/boxes/langauges.php *** On line ~27, find *** $languages_string = ''; reset($lng->catalog_languages); while (list($key, $value) = each($lng->catalog_languages)) { $languages_string .= ' <a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('language', 'currency')) . 'language=' . $key, $request_type) . '">' . tep_image(DIR_WS_LANGUAGES . $value['directory'] . '/images/' . $value['image'], $value['name']) . '</a> '; } *** (Option A - Topdomains) Replace with *** $languages_string = ''; reset($lng->catalog_languages); while (list($key, $value) = each($lng->catalog_languages)) { // BOF: [TiM's osC Solutions] SEO Regional Domains switch($key) { case 'da': $domain_name = 'www.domain.dk'; break; case 'de': $domain_name = 'www.domain.de'; break; case 'en': $domain_name = 'www.domain.com'; break; case 'fi': $domain_name = 'www.domain.fi'; break; case 'fr': $domain_name = 'www.domain.fr'; break; case 'nb': case 'nn': $domain_name = 'www.domain.no'; break; case 'sv': $domain_name = 'www.domain.se'; break; default: $domain_name = 'www.domain.com'; break; } $languages_string .= ' <a href="http://'. $domain_name .'">' . tep_image(DIR_WS_LANGUAGES . $value['directory'] . '/images/' . $value['image'], $value['name']) . '</a> '; // EOF: [TiM's osC Solutions] SEO Regional Domains } ###################################################################### DONE! Go HAVE YOURSELF A CUP OF COFFEE.