culturebee Posted June 17, 2007 Share Posted June 17, 2007 I don't know how you ended up with that .htaccess in the first place. The documentation listsOptions +FollowSymLinks This still give me the 500 error I will comment this line#Options +FollowSymLinks Works without it on my sever Thanks Culturebee Quote Link to comment Share on other sites More sharing options...
Guest Posted June 17, 2007 Share Posted June 17, 2007 This still give me the 500 error I will comment this line#Options +FollowSymLinks Works without it on my sever Thanks Culturebee yea well if you don't setup your server properly you will have the problem. So with dedicated or local servers you have full control and therefore you should have it working, more info here: http://httpd.apache.org/docs/2.0/mod/core.html Quote Link to comment Share on other sites More sharing options...
boom71 Posted June 17, 2007 Share Posted June 17, 2007 (edited) Right seem to be getting closer, no error messages but when click on a product or a category the page just stays on the homepage i.e. index page... Any tips guys? Thanks Keith Edited June 17, 2007 by boom71 Quote Link to comment Share on other sites More sharing options...
zimba Posted June 17, 2007 Share Posted June 17, 2007 (edited) are you using other modules like multi-store? or are you using different databases? Why the SEO_DEFAULT_EXTENSION is appended? This may happen if the dbase configuration switch isn't there in some cases. Which implies different dbases or different config tables. No multistore or different databases! It could be something with the database configuration but I don't no where to look. Can i do something to reinstall it to get this right. The strange thing the links work fine, but google indexing links that nowhere can be found. For example also the following links: /107?page=2 /107?page=3 /130?page=2 etc.. I remembered the following that I did during installation. I tried to run the sql script, but did get errors so i changed it as I already mentioned in my previews posts. I removed the part of the configuration variables before I executed it again, to prevent dubble configuration lines. Is this causing the problem? Thanks advance for youre great help. Edited June 17, 2007 by zimba Quote Link to comment Share on other sites More sharing options...
Guest Posted June 17, 2007 Share Posted June 17, 2007 Right seem to be getting closer, no error messages but when click on a product or a category the page just stays on the homepage i.e. index page... Any tips guys? Thanks Keith have you done all the mods as shown in the document? If so do you have a link to a product's page? Quote Link to comment Share on other sites More sharing options...
Guest Posted June 17, 2007 Share Posted June 17, 2007 No multistore or different databases! It could be something with the database configuration but I don't no where to look. Can i do something to reinstall it to get this right. The strange thing the links work fine, but google indexing links that nowhere can be found. For example also the following links: /107?page=2 /107?page=3 /130?page=2 etc.. I remembered the following that I did during installation. I tried to run the sql script, but did get errors so i changed it as I already mentioned in my previews posts. I removed the part of the configuration variables before I executed it again, to prevent dubble configuration lines. Is this causing the problem? Thanks advance for youre great help. can you check with phpmyadmin that all configuration switches of SEO-G are in the configuration table? As the seo_g.sql is setup the configuration switches will be inserted after the tables. So make sure the configure table is setup correctly. Your host should have phpmyadmin via your cpanel Quote Link to comment Share on other sites More sharing options...
boom71 Posted June 17, 2007 Share Posted June 17, 2007 have you done all the mods as shown in the document? If so do you have a link to a product's page? Yes, been over then three/four times. My site is http://www.pdas4u.co.uk/shop/index.php and the .htaccess is set to #-MS- SEO-G Added Options +FollowSymLinks RewriteEngine On # Next line must be changed to match your osCommerce folder - the relative path RewriteBase /shop/ RewriteRule ^(.*).html$ root.php?$1.html&%{QUERY_STRING} #-MS- SEO-G Added EOM As in configure.php is define('DIR_WS_HTTP_CATALOG', '/shop/'); Not sure what file is not working.. Cheers Keith Quote Link to comment Share on other sites More sharing options...
Guest Posted June 17, 2007 Share Posted June 17, 2007 Yes, been over then three/four times. is that the entire htaccess? Are there any other rules that perhaps interfere? Quote Link to comment Share on other sites More sharing options...
boom71 Posted June 17, 2007 Share Posted June 17, 2007 is that the entire htaccess? Are there any other rules that perhaps interfere? Entire access is as follows: RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*) index.php #-MS- SEO-G Added Options +FollowSymLinks RewriteEngine On # Next line must be changed to match your osCommerce folder - the relative path RewriteBase /shop/ RewriteRule ^(.*).html$ root.php?$1.html&%{QUERY_STRING} #-MS- SEO-G Added EOM Quote Link to comment Share on other sites More sharing options...
Guest Posted June 17, 2007 Share Posted June 17, 2007 Entire access is as follows:RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*) index.php #-MS- SEO-G Added Options +FollowSymLinks RewriteEngine On # Next line must be changed to match your osCommerce folder - the relative path RewriteBase /shop/ RewriteRule ^(.*).html$ root.php?$1.html&%{QUERY_STRING} #-MS- SEO-G Added EOM ok, comment out or remove this section... RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*) index.php see if it works with the seo-g alone. What's the purpose of the other rewrite rule anyways? Quote Link to comment Share on other sites More sharing options...
boom71 Posted June 17, 2007 Share Posted June 17, 2007 ok, comment out or remove this section... RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*) index.php see if it works with the seo-g alone. What's the purpose of the other rewrite rule anyways? I am not sure, always been there... I have tried getting rid of the top section and then get the following error on every product/category page Fatal error: Cannot redeclare tep_db_connect() (previously declared in /var/www/vhosts/pdas4u.co.uk/httpdocs/shop/includes/functions/database.php:13) in /var/www/vhosts/pdas4u.co.uk/httpdocs/shop/includes/functions/database.php on line 13 Cheers Keith Quote Link to comment Share on other sites More sharing options...
Guest Posted June 17, 2007 Share Posted June 17, 2007 I am not sure, always been there... I have tried getting rid of the top section and then get the following error on every product/category page Fatal error: Cannot redeclare tep_db_connect() (previously declared in /var/www/vhosts/pdas4u.co.uk/httpdocs/shop/includes/functions/database.php:13) in /var/www/vhosts/pdas4u.co.uk/httpdocs/shop/includes/functions/database.php on line 13 Cheers Keith looks like you haven't gone through the entire installation. Have you modified the application_top.php? And you need to get rid of the .htaccess section as I mentioned. SEO-G won't work like this. Quote Link to comment Share on other sites More sharing options...
boom71 Posted June 17, 2007 Share Posted June 17, 2007 looks like you haven't gone through the entire installation. Have you modified the application_top.php? And you need to get rid of the .htaccess section as I mentioned. SEO-G won't work like this. Been through it step by step many times, here is my modified application top: <?php /* $Id: application_top.php,v 1.1 2003/09/08 19:25:43 jhtalk Exp jhtalk $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright © 2003 osCommerce Released under the GNU General Public License */ //-MS- SEO-G Added if( !isset($g_seo_flag) || $g_seo_flag !== true) // start the timer for the page parse time log define('PAGE_PARSE_START_TIME', microtime()); // set the level of error reporting error_reporting(E_ALL & ~E_NOTICE); // check if register_globals is enabled. // since this is a temporary measure this message is hardcoded. The requirement will be removed before 2.2 is finalized. if (function_exists('ini_get')) { ini_get('register_globals') or exit('FATAL ERROR: register_globals is disabled in php.ini, please enable it!'); } // Set the local configuration parameters - mainly for developers if (file_exists('includes/local/configure.php')) include('includes/local/configure.php'); // include server parameters require('includes/configure.php'); if (strlen(DB_SERVER) < 1) { if (is_dir('install')) { header('Location: install/index.php'); } } // define the project version define('PROJECT_VERSION', 'osCommerce 2.2-MS2'); // set the type of request (secure or not) $request_type = (getenv('HTTPS') == 'on') ? 'SSL' : 'NONSSL'; // set php_self in the local scope if (!isset($PHP_SELF)) $PHP_SELF = $HTTP_SERVER_VARS['PHP_SELF']; if ($request_type == 'NONSSL') { define('DIR_WS_CATALOG', DIR_WS_HTTP_CATALOG); } else { define('DIR_WS_CATALOG', DIR_WS_HTTPS_CATALOG); } // include the list of project filenames require(DIR_WS_INCLUDES . 'filenames.php'); // include the list of project database tables require(DIR_WS_INCLUDES . 'database_tables.php'); // customization for the design layout define('BOX_WIDTH', 125); // how wide the boxes should be in pixels (default: 125) // include the database functions require(DIR_WS_FUNCTIONS . 'database.php'); // make a connection to the database... now tep_db_connect() or die('Unable to connect to database server!'); // set the application parameters $configuration_query = tep_db_query('select configuration_key as cfgKey, configuration_value as cfgValue from ' . TABLE_CONFIGURATION); while ($configuration = tep_db_fetch_array($configuration_query)) { define($configuration['cfgKey'], $configuration['cfgValue']); } //-MS- SEO URLs Support Added require(DIR_WS_CLASSES . 'seo_url.php'); $g_seo_url = new seoURL; //-MS- SEO URLs Support Added EOM // if gzip_compression is enabled, start to buffer the output if ( (GZIP_COMPRESSION == 'true') && ($ext_zlib_loaded = extension_loaded('zlib')) && (PHP_VERSION >= '4') ) { if (($ini_zlib_output_compression = (int)ini_get('zlib.output_compression')) < 1) { if (PHP_VERSION >= '4.0.4') { ob_start('ob_gzhandler'); } else { include(DIR_WS_FUNCTIONS . 'gzip_compression.php'); ob_start(); ob_implicit_flush(); } } else { ini_set('zlib.output_compression_level', GZIP_LEVEL); } } // set the HTTP GET parameters manually if search_engine_friendly_urls is enabled if (SEARCH_ENGINE_FRIENDLY_URLS == 'true') { if (strlen(getenv('PATH_INFO')) > 1) { $GET_array = array(); $PHP_SELF = str_replace(getenv('PATH_INFO'), '', $PHP_SELF); $vars = explode('/', substr(getenv('PATH_INFO'), 1)); for ($i=0, $n=sizeof($vars); $i<$n; $i++) { if (strpos($vars[$i], '[]')) { $GET_array[substr($vars[$i], 0, -2)][] = $vars[$i+1]; } else { $HTTP_GET_VARS[$vars[$i]] = $vars[$i+1]; } $i++; } if (sizeof($GET_array) > 0) { while (list($key, $value) = each($GET_array)) { $HTTP_GET_VARS[$key] = $value; } } } } // define general functions used application-wide require(DIR_WS_FUNCTIONS . 'general.php'); require(DIR_WS_FUNCTIONS . 'html_output.php'); // set the cookie domain $cookie_domain = (($request_type == 'NONSSL') ? HTTP_COOKIE_DOMAIN : HTTPS_COOKIE_DOMAIN); $cookie_path = (($request_type == 'NONSSL') ? HTTP_COOKIE_PATH : HTTPS_COOKIE_PATH); // include cache functions if enabled if (USE_CACHE == 'true') include(DIR_WS_FUNCTIONS . 'cache.php'); // include shopping cart class require(DIR_WS_CLASSES . 'shopping_cart.php'); // include navigation history class require(DIR_WS_CLASSES . 'navigation_history.php'); // some code to solve compatibility issues require(DIR_WS_FUNCTIONS . 'compatibility.php'); // check if sessions are supported, otherwise use the php3 compatible session class if (!function_exists('session_start')) { define('PHP_SESSION_NAME', 'osCsid'); define('PHP_SESSION_PATH', $cookie_path); define('PHP_SESSION_DOMAIN', $cookie_domain); define('PHP_SESSION_SAVE_PATH', SESSION_WRITE_DIRECTORY); include(DIR_WS_CLASSES . 'sessions.php'); } // define how the session functions will be used require(DIR_WS_FUNCTIONS . 'sessions.php'); // set the session name and save path tep_session_name('osCsid'); tep_session_save_path(SESSION_WRITE_DIRECTORY); // set the session cookie parameters if (function_exists('session_set_cookie_params')) { session_set_cookie_params(0, $cookie_path, $cookie_domain); } elseif (function_exists('ini_set')) { ini_set('session.cookie_lifetime', '0'); ini_set('session.cookie_path', $cookie_path); ini_set('session.cookie_domain', $cookie_domain); } // set the session ID if it exists if (isset($HTTP_POST_VARS[tep_session_name()])) { tep_session_id($HTTP_POST_VARS[tep_session_name()]); } elseif ( ($request_type == 'SSL') && isset($HTTP_GET_VARS[tep_session_name()]) ) { tep_session_id($HTTP_GET_VARS[tep_session_name()]); } // start the session $session_started = false; if (SESSION_FORCE_COOKIE_USE == 'True') { tep_setcookie('cookie_test', 'please_accept_for_session', time()+60*60*24*30, $cookie_path, $cookie_domain); if (isset($HTTP_COOKIE_VARS['cookie_test'])) { tep_session_start(); $session_started = true; } } elseif (SESSION_BLOCK_SPIDERS == 'True') { $user_agent = strtolower(getenv('HTTP_USER_AGENT')); $spider_flag = false; if (tep_not_null($user_agent)) { $spiders = file(DIR_WS_INCLUDES . 'spiders.txt'); for ($i=0, $n=sizeof($spiders); $i<$n; $i++) { if (tep_not_null($spiders[$i])) { if (is_integer(strpos($user_agent, trim($spiders[$i])))) { $spider_flag = true; break; } } } } if ($spider_flag == false) { tep_session_start(); $session_started = true; } } else { tep_session_start(); $session_started = true; } // set SID once, even if empty $SID = (defined('SID') ? SID : ''); // verify the ssl_session_id if the feature is enabled if ( ($request_type == 'SSL') && (SESSION_CHECK_SSL_SESSION_ID == 'True') && (ENABLE_SSL == true) && ($session_started == true) ) { $ssl_session_id = getenv('SSL_SESSION_ID'); if (!tep_session_is_registered('SSL_SESSION_ID')) { $SESSION_SSL_ID = $ssl_session_id; tep_session_register('SESSION_SSL_ID'); } if ($SESSION_SSL_ID != $ssl_session_id) { tep_session_destroy(); tep_redirect(tep_href_link(FILENAME_SSL_CHECK)); } } // verify the browser user agent if the feature is enabled if (SESSION_CHECK_USER_AGENT == 'True') { $http_user_agent = getenv('HTTP_USER_AGENT'); if (!tep_session_is_registered('SESSION_USER_AGENT')) { $SESSION_USER_AGENT = $http_user_agent; tep_session_register('SESSION_USER_AGENT'); } if ($SESSION_USER_AGENT != $http_user_agent) { tep_session_destroy(); tep_redirect(tep_href_link(FILENAME_LOGIN)); } } // verify the IP address if the feature is enabled if (SESSION_CHECK_IP_ADDRESS == 'True') { $ip_address = tep_get_ip_address(); if (!tep_session_is_registered('SESSION_IP_ADDRESS')) { $SESSION_IP_ADDRESS = $ip_address; tep_session_register('SESSION_IP_ADDRESS'); } if ($SESSION_IP_ADDRESS != $ip_address) { tep_session_destroy(); tep_redirect(tep_href_link(FILENAME_LOGIN)); } } // create the shopping cart & fix the cart if necesary if (tep_session_is_registered('cart') && is_object($cart)) { if (PHP_VERSION < 4) { $broken_cart = $cart; $cart = new shoppingCart; $cart->unserialize($broken_cart); } } else { tep_session_register('cart'); $cart = new shoppingCart; } // include currencies class and create an instance require(DIR_WS_CLASSES . 'currencies.php'); $currencies = new currencies(); // include the mail classes require(DIR_WS_CLASSES . 'mime.php'); require(DIR_WS_CLASSES . 'email.php'); // 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']; } // include the language translations require(DIR_WS_LANGUAGES . $language . '.php'); // 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'])) { if (!$currency = tep_currency_exists($HTTP_GET_VARS['currency'])) $currency = (USE_DEFAULT_LANGUAGE_CURRENCY == 'true') ? LANGUAGE_CURRENCY : DEFAULT_CURRENCY; } else { $currency = (USE_DEFAULT_LANGUAGE_CURRENCY == 'true') ? LANGUAGE_CURRENCY : DEFAULT_CURRENCY; } } // navigation history if (tep_session_is_registered('navigation')) { if (PHP_VERSION < 4) { $broken_navigation = $navigation; $navigation = new navigationHistory; $navigation->unserialize($broken_navigation); } } else { tep_session_register('navigation'); $navigation = new navigationHistory; } $navigation->add_current_page(); // Shopping cart actions if (isset($HTTP_GET_VARS['action'])) { // redirect the customer to a friendly cookie-must-be-enabled page if cookies are disabled if ($session_started == false) { tep_redirect(tep_href_link(FILENAME_COOKIE_USAGE)); } if (DISPLAY_CART == 'true') { $goto = FILENAME_SHOPPING_CART; $parameters = array('action', 'cPath', 'products_id', 'pid'); } else { $goto = basename($PHP_SELF); if ($HTTP_GET_VARS['action'] == 'buy_now') { $parameters = array('action', 'pid', 'products_id'); } else { $parameters = array('action', 'pid'); } } switch ($HTTP_GET_VARS['action']) { // customer wants to update the product quantity in their shopping cart case 'update_product' : for ($i=0, $n=sizeof($HTTP_POST_VARS['products_id']); $i<$n; $i++) { if (in_array($HTTP_POST_VARS['products_id'][$i], (is_array($HTTP_POST_VARS['cart_delete']) ? $HTTP_POST_VARS['cart_delete'] : array()))) { $cart->remove($HTTP_POST_VARS['products_id'][$i]); } else { if (PHP_VERSION < 4) { // if PHP3, make correction for lack of multidimensional array. reset($HTTP_POST_VARS); while (list($key, $value) = each($HTTP_POST_VARS)) { if (is_array($value)) { while (list($key2, $value2) = each($value)) { if (ereg ("(.*)\]\[(.*)", $key2, $var)) { $id2[$var[1]][$var[2]] = $value2; } } } } $attributes = ($id2[$HTTP_POST_VARS['products_id'][$i]]) ? $id2[$HTTP_POST_VARS['products_id'][$i]] : ''; } else { $attributes = ($HTTP_POST_VARS['id'][$HTTP_POST_VARS['products_id'][$i]]) ? $HTTP_POST_VARS['id'][$HTTP_POST_VARS['products_id'][$i]] : ''; } $cart->add_cart($HTTP_POST_VARS['products_id'][$i], $HTTP_POST_VARS['cart_quantity'][$i], $attributes, false); } } tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters))); break; // customer adds a product from the products page case 'add_product' : if (isset($HTTP_POST_VARS['products_id']) && is_numeric($HTTP_POST_VARS['products_id'])) { $cart->add_cart($HTTP_POST_VARS['products_id'], $cart->get_quantity(tep_get_uprid($HTTP_POST_VARS['products_id'], $HTTP_POST_VARS['id']))+1, $HTTP_POST_VARS['id']); } tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters))); break; // performed by the 'buy now' button in product listings and review page case 'buy_now' : if (isset($HTTP_GET_VARS['products_id'])) { if (tep_has_product_attributes($HTTP_GET_VARS['products_id'])) { tep_redirect(tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $HTTP_GET_VARS['products_id'])); } else { $cart->add_cart($HTTP_GET_VARS['products_id'], $cart->get_quantity($HTTP_GET_VARS['products_id'])+1); } } tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters))); break; case 'notify' : if (tep_session_is_registered('customer_id')) { if (isset($HTTP_GET_VARS['products_id'])) { $notify = $HTTP_GET_VARS['products_id']; } elseif (isset($HTTP_GET_VARS['notify'])) { $notify = $HTTP_GET_VARS['notify']; } elseif (isset($HTTP_POST_VARS['notify'])) { $notify = $HTTP_POST_VARS['notify']; } else { tep_redirect(tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action', 'notify')))); } if (!is_array($notify)) $notify = array($notify); for ($i=0, $n=sizeof($notify); $i<$n; $i++) { $check_query = tep_db_query("select count(*) as count from " . TABLE_PRODUCTS_NOTIFICATIONS . " where products_id = '" . $notify[$i] . "' and customers_id = '" . $customer_id . "'"); $check = tep_db_fetch_array($check_query); if ($check['count'] < 1) { tep_db_query("insert into " . TABLE_PRODUCTS_NOTIFICATIONS . " (products_id, customers_id, date_added) values ('" . $notify[$i] . "', '" . $customer_id . "', now())"); } } tep_redirect(tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action', 'notify')))); } else { $navigation->set_snapshot(); tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL')); } break; case 'notify_remove' : if (tep_session_is_registered('customer_id') && isset($HTTP_GET_VARS['products_id'])) { $check_query = tep_db_query("select count(*) as count from " . TABLE_PRODUCTS_NOTIFICATIONS . " where products_id = '" . $HTTP_GET_VARS['products_id'] . "' and customers_id = '" . $customer_id . "'"); $check = tep_db_fetch_array($check_query); if ($check['count'] > 0) { tep_db_query("delete from " . TABLE_PRODUCTS_NOTIFICATIONS . " where products_id = '" . $HTTP_GET_VARS['products_id'] . "' and customers_id = '" . $customer_id . "'"); } tep_redirect(tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')))); } else { $navigation->set_snapshot(); tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL')); } break; case 'cust_order' : if (tep_session_is_registered('customer_id') && isset($HTTP_GET_VARS['pid'])) { if (tep_has_product_attributes($HTTP_GET_VARS['pid'])) { tep_redirect(tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $HTTP_GET_VARS['pid'])); } else { $cart->add_cart($HTTP_GET_VARS['pid'], $cart->get_quantity($HTTP_GET_VARS['pid'])+1); } } tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters))); break; } } // include the who's online functions require(DIR_WS_FUNCTIONS . 'whos_online.php'); tep_update_whos_online(); // include the password crypto functions require(DIR_WS_FUNCTIONS . 'password_funcs.php'); // include validation functions (right now only email address) require(DIR_WS_FUNCTIONS . 'validations.php'); // split-page-results require(DIR_WS_CLASSES . 'split_page_results.php'); // infobox require(DIR_WS_CLASSES . 'boxes.php'); // auto activate and expire banners require(DIR_WS_FUNCTIONS . 'banner.php'); tep_activate_banners(); tep_expire_banners(); // auto expire special products require(DIR_WS_FUNCTIONS . 'specials.php'); tep_expire_specials(); // calculate category path if (isset($HTTP_GET_VARS['cPath'])) { $cPath = $HTTP_GET_VARS['cPath']; } elseif (isset($HTTP_GET_VARS['products_id']) && !isset($HTTP_GET_VARS['manufacturers_id'])) { $cPath = tep_get_product_path($HTTP_GET_VARS['products_id']); } else { $cPath = ''; } if (tep_not_null($cPath)) { $cPath_array = tep_parse_category_path($cPath); $cPath = implode('_', $cPath_array); $current_category_id = $cPath_array[(sizeof($cPath_array)-1)]; } else { $current_category_id = 0; } // include the breadcrumb class and start the breadcrumb trail require(DIR_WS_CLASSES . 'breadcrumb.php'); $breadcrumb = new breadcrumb; $breadcrumb->add(HEADER_TITLE_TOP, HTTP_SERVER); $breadcrumb->add(HEADER_TITLE_CATALOG, tep_href_link(FILENAME_DEFAULT)); // add category names or the manufacturer name to the breadcrumb trail if (isset($cPath_array)) { for ($i=0, $n=sizeof($cPath_array); $i<$n; $i++) { $categories_query = tep_db_query("select categories_name from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$cPath_array[$i] . "' and language_id = '" . (int)$languages_id . "'"); if (tep_db_num_rows($categories_query) > 0) { $categories = tep_db_fetch_array($categories_query); $breadcrumb->add($categories['categories_name'], tep_href_link(FILENAME_DEFAULT, 'cPath=' . implode('_', array_slice($cPath_array, 0, ($i+1))))); } else { break; } } } elseif (isset($HTTP_GET_VARS['manufacturers_id'])) { $manufacturers_query = tep_db_query("select manufacturers_name from " . TABLE_MANUFACTURERS . " where manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'"); if (tep_db_num_rows($manufacturers_query)) { $manufacturers = tep_db_fetch_array($manufacturers_query); $breadcrumb->add($manufacturers['manufacturers_name'], tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id'])); } } // add the products model to the breadcrumb trail if (isset($HTTP_GET_VARS['products_id'])) { $model_query = tep_db_query("select products_model from " . TABLE_PRODUCTS . " where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "'"); if (tep_db_num_rows($model_query)) { $model = tep_db_fetch_array($model_query); $breadcrumb->add($model['products_model'], tep_href_link(FILENAME_PRODUCT_INFO, 'cPath=' . $cPath . '&products_id=' . $HTTP_GET_VARS['products_id'])); } } // initialize the message stack for output messages require(DIR_WS_CLASSES . 'message_stack.php'); $messageStack = new messageStack; // set which precautions should be checked define('WARN_INSTALL_EXISTENCE', 'true'); define('WARN_CONFIG_WRITEABLE', 'true'); define('WARN_SESSION_DIRECTORY_NOT_WRITEABLE', 'true'); define('WARN_SESSION_AUTO_START', 'true'); define('WARN_DOWNLOAD_DIRECTORY_NOT_READABLE', 'true'); // STS: ADD // Capture text between application_top.php and header.php require(STS_START_CAPTURE); // STS: EOADD ?> Root.php file... <?php /* //---------------------------------------------------------------------------- // Copyright © 2006-2007 Asymmetric Software - Innovation & Excellence // Author: Mark Samios // http://www.asymmetrics.com // SEO-G Root page // Main handler script // Includes part of the includes/application_top.php from osCommerce to // initialize the database. //---------------------------------------------------------------------------- // Script is intended to be used with: // osCommerce, Open Source E-Commerce Solutions // http://www.oscommerce.com // Copyright © 2003 osCommerce //---------------------------------------------------------------------------- // Released under the GNU General Public License //---------------------------------------------------------------------------- // MAKE SURE THE FOLLOWING SECTION IS COPIED DIRECTLY FROM YOUR OWN // catalog\includes\application_top.php and then set the $g_relpath, $g_server // variables in this file such that: //---------------------------------------------------------------------------- if ($request_type == 'NONSSL') { define('DIR_WS_CATALOG', DIR_WS_HTTP_CATALOG); $g_relpath = HTTP_SERVER . DIR_WS_CATALOG; $g_server = HTTP_SERVER; } else { define('DIR_WS_CATALOG', DIR_WS_HTTPS_CATALOG); $g_relpath = HTTPS_SERVER . DIR_WS_CATALOG; $g_server = HTTPS_SERVER; } //---------------------------------------------------------------------------- // Also note the $request_type has to be determined accurately between // SSL and NON-SSL pages. // See also documentation for details for this line: // $request_type = (getenv('HTTPS') == 'on') ? 'SSL' : 'NONSSL'; //---------------------------------------------------------------------------- */ //---------------------------------------------------------------------------- //-MS- Beginning of application_top.php section //---------------------------------------------------------------------------- // start the timer for the page parse time log define('PAGE_PARSE_START_TIME', microtime()); // set the level of error reporting error_reporting(E_ALL & ~E_NOTICE); // check if register_globals is enabled. // since this is a temporary measure this message is hardcoded. The requirement will be removed before 2.2 is finalized. // >>> BEGIN REGISTER_GLOBALS // if (function_exists('ini_get')) { // ini_get('register_globals') or exit('Server Requirement Error: register_globals is disabled in your PHP configuration. This can be enabled in your php.ini configuration file or in the .htaccess file in your catalog directory.'); // } // <<< END REGISTER_GLOBALS // Set the local configuration parameters - mainly for developers if (file_exists('includes/local/configure.php')) include('includes/local/configure.php'); // include server parameters require('includes/configure.php'); if (strlen(DB_SERVER) < 1) { if (is_dir('install')) { header('Location: install/index.php'); } } // define the project version define('PROJECT_VERSION', 'osCommerce 2.2-MS2'); // set the type of request (secure or not) $request_type = (getenv('HTTPS') == 'on') ? 'SSL' : 'NONSSL'; // set php_self in the local scope if (!isset($PHP_SELF)) $PHP_SELF = $HTTP_SERVER_VARS['PHP_SELF']; if ($request_type == 'NONSSL') { define('DIR_WS_CATALOG', DIR_WS_HTTP_CATALOG); $g_relpath = HTTP_SERVER . DIR_WS_CATALOG; $g_server = HTTP_SERVER; } else { define('DIR_WS_CATALOG', DIR_WS_HTTPS_CATALOG); $g_relpath = HTTPS_SERVER . DIR_WS_CATALOG; $g_server = HTTPS_SERVER; } // include the list of project filenames require(DIR_WS_INCLUDES . 'filenames.php'); // include the list of project database tables require(DIR_WS_INCLUDES . 'database_tables.php'); // customization for the design layout define('BOX_WIDTH', 125); // how wide the boxes should be in pixels (default: 125) // include the database functions require(DIR_WS_FUNCTIONS . 'database.php'); // make a connection to the database... now tep_db_connect() or die('Unable to connect to database server!'); // set the application parameters $configuration_query = tep_db_query('select configuration_key as cfgKey, configuration_value as cfgValue from ' . TABLE_CONFIGURATION); while ($configuration = tep_db_fetch_array($configuration_query)) { define($configuration['cfgKey'], $configuration['cfgValue']); } //---------------------------------------------------------------------------- //-MS- End of application_top.php section //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- // SEO-G Section starts here. This part is required for proper operation // Do not override the code below //---------------------------------------------------------------------------- require(DIR_WS_CLASSES . 'seo_url.php'); $g_seo_url = new seoURL; $osc_url = $osc_params = $osc_parse = ''; if( $g_seo_url->get_osc_url($g_server . $_SERVER['REQUEST_URI'], $osc_url, $osc_params, $osc_parse) ) { $PHP_SELF = $HTTP_SERVER_VARS['PHP_SELF'] = $_SERVER['PHP_SELF'] = $_SERVER['SCRIPT_NAME'] = $osc_parse['path']; if(basename($_SERVER['PHP_SELF']) == 'root.php' ) { echo '<b>SEO-G Error</b>: Invalid Self-Request - Check recorded URLs'; exit(); } $tmp_array = array(); for($i=0, $j=count($osc_params); $i<$j; $i++ ) { $array_equal = explode('=', $osc_params[$i]); if( is_array($array_equal) ) { if( isset($array_equal[1]) ) { $tmp_array[$array_equal[0]] = $array_equal[1]; } else { $tmp_array[$array_equal[0]] = ''; } } } $tmp_array = array_merge($HTTP_GET_VARS,$tmp_array); // Synchronize global arrays. $HTTP_GET_VARS = $_GET = $tmp_array; unset($tmp_array); // Synchronize query string variables $HTTP_SERVER_VARS['QUERY_STRING'] = $_SERVER['QUERY_STRING'] = implode('&',$osc_params); $g_script = basename($PHP_SELF); // Signal SEO-G translation. $g_seo_flag = true; require(basename($PHP_SELF)); } elseif( file_exists(basename($osc_parse['path']))) { $PHP_SELF = $HTTP_SERVER_VARS['PHP_SELF'] = $_SERVER['PHP_SELF'] = $_SERVER['SCRIPT_NAME'] = $osc_parse['path']; if(basename($_SERVER['PHP_SELF']) == 'root.php' ) { echo '<b>SEO-G Error</b>: Invalid Self-Request, passed URI Request: ' . $_SERVER['REQUEST_URI']; exit(); } $g_script = basename($PHP_SELF); $g_seo_flag = true; require(basename($osc_parse['path'])); } else { // Script not found. Initiate redirection header("HTTP/1.1 " . SEO_DEFAULT_ERROR_HEADER); header('Location: ' . $g_relpath . SEO_DEFAULT_ERROR_REDIRECT); //echo STORE_NAME . ' - Page was moved'; } exit(); ?> Mark, can you have a quick scan at these and see if anything obvious pops out. Thanks Keith Quote Link to comment Share on other sites More sharing options...
Guest Posted June 17, 2007 Share Posted June 17, 2007 (edited) yes is not right the closing section of the seo-g should been: //-MS- SEO URLs Support Added require(DIR_WS_CLASSES . 'seo_url.php'); $g_seo_url = new seoURL; //-MS- SEO URLs Support Added EOM } //-MS- SEO-G Added EOM you're missing code in application_top.php, double check the files. Edited June 17, 2007 by enigma1 Quote Link to comment Share on other sites More sharing options...
Guest Posted June 17, 2007 Share Posted June 17, 2007 and this one here should have an open bracket if( !isset($g_seo_flag) || $g_seo_flag !== true) { yours doesn't Quote Link to comment Share on other sites More sharing options...
boom71 Posted June 17, 2007 Share Posted June 17, 2007 and this one here should have an open bracket if( !isset($g_seo_flag) || $g_seo_flag !== true) { yours doesn't Yes changed them above and still the same, its weird as all the redirects in SEO-G look fine: 0.5 always 0 http://www.pdas4u.co.uk/shop/about_us.php http://www.pdas4u.co.uk/shop/about_us.html 0.5 always 0 http://www.pdas4u.co.uk/shop/advanced_search.php http://www.pdas4u.co.uk/shop/advanced_search.html 0.5 always 0 http://www.pdas4u.co.uk/shop/advanced_search_result.php http://www.pdas4u.co.uk/shop/advanced_search_result.html 0.5 always 0 http://www.pdas4u.co.uk/shop/all_products.php http://www.pdas4u.co.uk/shop/all_products.html 0.5 always 0 http://www.pdas4u.co.uk/shop/index.php?cPath=26 http://www.pdas4u.co.uk/shop/blackberry.html Its deffo something to do with root.php / .htaccess Will have to keep on playing until something clicks, cheers anyway. Kieth Quote Link to comment Share on other sites More sharing options...
boom71 Posted June 18, 2007 Share Posted June 18, 2007 Right, got the products working but now the categories are not... Keith Quote Link to comment Share on other sites More sharing options...
boom71 Posted June 18, 2007 Share Posted June 18, 2007 (edited) Right the error seems to be that any urls with a cpath (i.e. http://www.pdas4u.co.uk/shop/index.php?cPath=26_55 ) are being translated but when the Search Engine Safe URL's is turned off (which is needed in this contribution) then this cpath is no longer working and thus the redirect is not working. Anyone else got this problem? The product/manufacturers pages are workign like a dream it is just the category links that are not. Thanks Keith Edited June 18, 2007 by boom71 Quote Link to comment Share on other sites More sharing options...
rowena Posted June 18, 2007 Share Posted June 18, 2007 Hi, I installed this contribution & it was working perfectly (fantastic contribution btw!) However, I added the dynamenu to my store and now all the seo-g admin pages have db errors on them. Nothing has been changed with the database with the installation of dynamenu and I have verified that all the tables are present and correct (which they are). I am getting the following errors: On seo_types.php: 1146 - Table 'equineca_database.TABLE_SEO_TYPES' doesn't exist select at.* from TABLE_SEO_TYPES at order by at.sort_order [TEP STOP] seo_zones.php: 1146 - Table 'equineca_database.TABLE_SEO_TYPES' doesn't exist select count(*) as total from TABLE_SEO_TYPES at where seo_types_status='1' [TEP STOP] seo_exclude.php: 1146 - Table 'equineca_database.TABLE_SEO_EXCLUDE' doesn't exist select count(*) as total from TABLE_SEO_EXCLUDE [TEP STOP] seo_reports.php: 1146 - Table 'equineca_database.TABLE_SEO_URL' doesn't exist select count(*) as total from TABLE_SEO_URL su left join TABLE_SEO_FREQUENCY sf on (sf.seo_frequency_id=su.seo_frequency_id) [TEP STOP] seo_redirects.php: 1146 - Table 'equineca_database.TABLE_SEO_REDIRECT' doesn't exist select count(*) as total from TABLE_SEO_REDIRECT [TEP STOP] The tables and database DO exist, I have tried repairing the database but that makes no difference. Any suggestions would be appreciated ;) Quote Link to comment Share on other sites More sharing options...
Guest Posted June 18, 2007 Share Posted June 18, 2007 Right the error seems to be that any urls with a cpath (i.e. http://www.pdas4u.co.uk/shop/index.php?cPath=26_55 ) are being translated but when the Search Engine Safe URL's is turned off (which is needed in this contribution) then this cpath is no longer working and thus the redirect is not working. Anyone else got this problem? The product/manufacturers pages are workign like a dream it is just the category links that are not. Thanks Keith can you make sure the cache is switched off? (See item-12 in the documentation) Quote Link to comment Share on other sites More sharing options...
Guest Posted June 18, 2007 Share Posted June 18, 2007 Hi, I installed this contribution & it was working perfectly (fantastic contribution btw!) However, I added the dynamenu to my store and now all the seo-g admin pages have db errors on them. Nothing has been changed with the database with the installation of dynamenu and I have verified that all the tables are present and correct (which they are). I am getting the following errors: The tables and database DO exist, I have tried repairing the database but that makes no difference. Any suggestions would be appreciated ;) check if the tables exist in catalog\admin\includes\database_tables.php Do not override files with contributions in general always do a manual integration. Quote Link to comment Share on other sites More sharing options...
rowena Posted June 18, 2007 Share Posted June 18, 2007 check if the tables exist in catalog\admin\includes\database_tables.php Do not override files with contributions in general always do a manual integration. Fab, all sorted (duh, silly me!) Thank you so much :blush: Quote Link to comment Share on other sites More sharing options...
boom71 Posted June 18, 2007 Share Posted June 18, 2007 can you make sure the cache is switched off? (See item-12 in the documentation) Yes deffo off: Cache Title Value Action Use Cache false Quote Link to comment Share on other sites More sharing options...
Guest Posted June 18, 2007 Share Posted June 18, 2007 Yes deffo off: Cache Title Value Action Use Cache false yea well SEO-G is not active there and I see you switched on the stock SEFs, so I can't help you like this. Quote Link to comment Share on other sites More sharing options...
boom71 Posted June 18, 2007 Share Posted June 18, 2007 yea well SEO-G is not active there and I see you switched on the stock SEFs, so I can't help you like this. Mark, SEO-G is back active and SEF is again now off. I didnt want my site just sitting there with half of the links not working. Thanks Again Keith Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.