3

商店版本是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/');

我在 admin/includes 文件夹中的 configure.php:

  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. 我还将搜索引擎安全网址设置为 false。我不知道斜线是从哪里来的。

4

2 回答 2

2

这是一个很常见的问题,主要是由于使用尾部斜杠定义 include/configure.php 的 HTTP_SERVER 常量引起的。因此,如果您仍然遇到此问题,请首先确保您的浏览器中的网站没有被缓存,并且 configure.php 文件实际上是在您的服务器上写入的(权限问题)。

如果问题仍然存在,则可以逐步完成 OSC URL 生成过程。(我们假设您使用的是默认 OSC URL 格式。)

默认情况下,OSC 中的所有 URL 都由位于 include/functions/html_output.php 中的 tep_href_link() 函数生成。功能非常简单。它采用 HTTP_SERVER 常量并将其与 DIR_WS_HTTP_CATALOG 连接起来。然后添加 $page 参数。即使没有可以添加额外斜线的地方,您也可以尝试添加调试代码以找到问题的根源。

于 2011-12-20T10:08:46.713 回答
0

我不得不编辑这两行:

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

他们是

  define('DIR_WS_HTTP_CATALOG', '//');
  define('DIR_WS_HTTPS_CATALOG', '//');
于 2014-03-08T17:10:21.303 回答