Двойная косая черта в магазине OsCommerce (например, http://www.shop.com//index.php?cPath=427) - PullRequest
3 голосов
/ 19 декабря 2011

Версия магазина - osCommerce Online Merchant v2.2 RC2a.Если пользователь посещает магазин, URL-адрес имеет двойную косую черту перед index.php.Я посмотрел в конфиге, но не могу найти ошибку.

Мой файл configure.php в папке включает в себя:

  define('HTTP_SERVER', 'http://www.shop.com');
  define('HTTPS_SERVER', 'http://www.shop.com');
  define('ENABLE_SSL', false);
  define('HTTP_COOKIE_DOMAIN', 'www.shop.com');
  define('HTTPS_COOKIE_DOMAIN', 'www.shop.com');
  define('HTTP_COOKIE_PATH', '/');
  define('HTTPS_COOKIE_PATH', '/');
  define('DIR_WS_HTTP_CATALOG', '/');
  define('DIR_WS_HTTPS_CATALOG', '/');
  define('DIR_WS_IMAGES', 'images/');
  define('DIR_WS_ICONS', DIR_WS_IMAGES . 'icons/');
  define('DIR_WS_INCLUDES', 'includes/');
  define('DIR_WS_BOXES', DIR_WS_INCLUDES . 'boxes/');
  define('DIR_WS_FUNCTIONS', DIR_WS_INCLUDES . 'functions/');
  define('DIR_WS_CLASSES', DIR_WS_INCLUDES . 'classes/');
  define('DIR_WS_MODULES', DIR_WS_INCLUDES . 'modules/');
  define('DIR_WS_LANGUAGES', DIR_WS_INCLUDES . 'languages/');

  define('DIR_WS_DOWNLOAD_PUBLIC', 'pub/');
  define('DIR_FS_CATALOG', '/home/shop/www/home/');
  define('DIR_FS_DOWNLOAD', DIR_FS_CATALOG . 'download/');
  define('DIR_FS_DOWNLOAD_PUBLIC', DIR_FS_CATALOG . 'pub/');

Мой файл configure.php в папке admin / includes:

  define('HTTP_SERVER', 'http://www.shop.com');
  define('HTTP_CATALOG_SERVER', 'http://www.shop.com');
  define('HTTPS_CATALOG_SERVER', 'http://www.shop.com');
  define('ENABLE_SSL_CATALOG', 'false');
  define('DIR_FS_DOCUMENT_ROOT', '/home/shop/www/home/');
  define('DIR_WS_ADMIN', '/admin/');
  define('DIR_FS_ADMIN', '/home/shop/www/home/admin/');
  define('DIR_WS_CATALOG', '/');
  define('DIR_FS_CATALOG', '/home/shop/www/home/');
  define('DIR_WS_IMAGES', 'images/');
  define('DIR_WS_ICONS', DIR_WS_IMAGES . 'icons/');
  define('DIR_WS_CATALOG_IMAGES', DIR_WS_CATALOG . 'images/');
  define('DIR_WS_INCLUDES', 'includes/');
  define('DIR_WS_BOXES', DIR_WS_INCLUDES . 'boxes/');
  define('DIR_WS_FUNCTIONS', DIR_WS_INCLUDES . 'functions/');
  define('DIR_WS_CLASSES', DIR_WS_INCLUDES . 'classes/');
  define('DIR_WS_MODULES', DIR_WS_INCLUDES . 'modules/');
  define('DIR_WS_LANGUAGES', DIR_WS_INCLUDES . 'languages/');
  define('DIR_WS_CATALOG_LANGUAGES', DIR_WS_CATALOG . 'includes/languages/');
  define('DIR_FS_CATALOG_LANGUAGES', DIR_FS_CATALOG . 'includes/languages/');
  define('DIR_FS_CATALOG_IMAGES', DIR_FS_CATALOG . 'images/');
  define('DIR_FS_CATALOG_MODULES', DIR_FS_CATALOG . 'includes/modules/');
  define('DIR_FS_BACKUP', DIR_FS_ADMIN . 'backups/');

На сервере папка catalog пуста.Поэтому DIR_WS_CATALOG установлен на /.

Я также посмотрел в filenames.php для FILENAME_DEFAULT.У меня также есть безопасные URL-адреса поисковой системы, установленные на false.Я не знаю, откуда исходит слэш.

Ответы [ 2 ]

2 голосов
/ 20 декабря 2011

Это довольно распространенная проблема, вызванная главным образом определением константы HTTP_SERVER для include / configure.php с помощью косой черты. Поэтому, если у вас все еще есть эта проблема, пожалуйста, сначала убедитесь, что веб-сайт в вашем браузере не кэширован, а файл configure.php фактически записан на вашем сервере (проблема с разрешениями).

Если проблема все еще существует, имеет смысл пошагово пройти процесс генерации URL OSC. (Мы предполагаем, что вы используете формат URL OSC по умолчанию.)

По умолчанию все URL-адреса в OSC генерируются функцией tep_href_link (), которая находится в include / functions / html_output.php. Функция довольно проста. Он принимает константу HTTP_SERVER и объединяет ее с DIR_WS_HTTP_CATALOG. Затем добавляется параметр $ page. И даже там, где нет места, где можно добавить дополнительную косую черту, вы можете попробовать добавить код отладки, чтобы найти источник вашей проблемы.

0 голосов
/ 08 марта 2014

Мне пришлось редактировать эти две строки:

  define('DIR_WS_HTTP_CATALOG', '/');
  define('DIR_WS_HTTPS_CATALOG', '/');

они были

  define('DIR_WS_HTTP_CATALOG', '//');
  define('DIR_WS_HTTPS_CATALOG', '//');
...