2015-04-25 201 views
1

我需要創建單獨的零售和批發商店,並計劃使用URL結構mysite.com/store和我的site.com/wholesale在同一個域上執行此操作。多個Magento 1.9網站/商店在同一個域名

我在Magento後端創建了單獨的網站,並進入了相關的不安全/安全的基本URL。 mysite.com/store工作良好,並顯示所有產品等...但是,如果我去mysite.com/wholesale我只是得到一個標準的服務器404(而不是Magento 404)。

如何正確設置它?我是否需要在我的根目錄中有一個「批發」文件夾或對Magento根目錄中的.htaccess進行更改?

關於SO或magento.stackexchange的每個教程或問題似乎基於不同域/子域上的獨立存儲。

回答

3

爲了在同一域名下的不同商店中使用單獨的文件夾,您可以使用相對新的「向店鋪添加店鋪代碼」選項。

你可以在System > Configuration > Web > Url Options找到這個otion。 core_config路徑是web/url/use_store

screenshot: magento "add store-code to url"-option

要使用這個選項,你應該

  1. 使用相同的基本網址商店(無需在/wholesale文件夾添加到基礎URL)
  2. 設置商店代碼與您希望作爲您的基本網址的子文件夾具有相同的名稱(例如「批發」)

Animation showing the steps of adding the Magento store-code to the URL

這種方式獨立於您正在使用的網絡服務器。所以不需要更改任何.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變化
  • 你必須告訴Magento的地方它的真正根源是:define('MAGENTO_ROOT', dirname(getcwd()));
  • 你必須指定店鋪代碼:Mage::run('wholesale', 'store');

所有其他行都是標準的Magento。

理論上你應該也可以用重寫規則完成同樣的工作,但是我從來沒有這樣做過。

0

你使用什麼web服務器可以用簡單的nginx配置來解決這個問題。

+0

我正在使用Apache網絡服務器。 – Mark

0

問題是,當你轉到mysite.com/wholesale時,Apache Web服務器認爲它是一個目錄。這就是爲什麼你得到一個404而不是生成的Magento。你在Magento網站的根目錄下有標準的Magento .htaccess嗎?

+0

我使用的是Magento附帶的標準.htaccess。我需要添加重寫規則嗎? – Mark

相關問題