我需要创建单独的零售店和批发店,并计划使用URL结构mysite.com/store和我的site.com/wholesale在同一个域上执行此操作。
我在Magento后端创建了单独的网站,并输入了相关的不安全/安全基本网址。 mysite.com/store工作得非常好并且展示了所有产品......但是如果我去mysite.com/wholesale我只需要一台标准服务器404(而不是Magento 404)。
如何正确设置?我的根目录中是否需要“批发”文件夹,或者对Magento根目录中的.htaccess进行更改或类似的事情?
关于SO或magento.stackexchange的每个教程或问题似乎都基于不同域/子域上的不同商店。
答案 0 :(得分:3)
为了在同一域名下为不同商店使用单独的文件夹,您可以使用相对较新的"添加商店代码到网址" -option。
您可以在System > Configuration > Web > Url Options
下找到此动作。 core_config
路径为web/url/use_store
。
要使用此选项,您应该
/wholesale
文件夹添加到基本网址)
这与您正在使用的Web服务器无关。因此,不需要更改任何.htaccess文件。
如果您要将网站文件夹命名为与商店代码不同的名称,则必须创建该文件夹并向其添加自定义index.php
以设置正确的商店代码:
<?php
/**
* Error reporting
*/
if (isset($_SERVER['MAGE_IS_DEVELOPER_MODE'])) {
error_reporting(E_ALL | E_STRICT);
ini_set("display_errors", 1);
ini_set("log_errors", 1);
} else {
error_reporting(E_ERROR);
ini_set("display_errors", 0);
ini_set("log_errors", 1);
}
/**
* Compilation includes configuration file
*/
define('MAGENTO_ROOT', dirname(getcwd()));
$compilerConfig = MAGENTO_ROOT . '/includes/config.php';
if (file_exists($compilerConfig)) {
include $compilerConfig;
}
$mageFilename = MAGENTO_ROOT . '/app/Mage.php';
$maintenanceFile = 'maintenance.flag';
php_dir('downloader')) {
header("Location: downloader");
} else {
echo $mageFilename." was not found";
}
exit;
}
if (file_exists($maintenanceFile)) {
include_once dirname(__FILE__) . '/errors/503.php';
exit;
}
require_once $mageFilename;
/**
* Enable developer mode
*/
if (isset($_SERVER['MAGE_IS_DEVELOPER_MODE'])) {
Mage::setIsDeveloperMode(true);
}
umask(0);
Mage::run('wholesale', 'store');
除了两个位置
之外,默认的index.php几乎没有任何变化define('MAGENTO_ROOT', dirname(getcwd()));
Mage::run('wholesale', 'store');
所有其他行都是标准的Magento。
从理论上讲,你也应该能够通过重写规则来完成相同的工作,但我从来没有让它正常工作。
答案 1 :(得分:0)
您使用的是什么网络服务器,您可以使用简单的nginx配置解决此问题。
答案 2 :(得分:0)
问题在于,当你访问mysite.com/wholesale时,Apache Web服务器认为它是一个目录。这就是为什么你得到404而不是Magento生成的原因。你在Magento网站的根目录中有标准的Magento .htaccess吗?