Witam,
Mam problem z ustawieniem prawidłowo działającego "wielosklepu" (multistore).
Chcę zrobić 1 sklep działający na 2-3 różnych domenach z różnymi layoutami (ten sam asortyment, wspólna baza) oraz drugi sklep na innej domenie (z zupełnie innym asortymentem).
Magento mam zainstalowane pod 1 domeną - sklep2.com.pl, a sklepy wyglądają tak:
WITRYNA (website) SKLEP (store) WIDOK SKLEP (store view)
sklep1 sklep1_com sklep1_view
sklep1 sklep2_com sklep2_view
sklep3 sklep3_net sklep3_view
Plik index.php został "wzbogacony" o:
switch($_SERVER['HTTP_HOST']) {
case 'sklep3.net.pl':
case 'www.sklep3.net.pl':
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE] = 'sklep3';
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_TYPE] = 'website';
break;
case 'sklep2.com.pl':
case 'www.sklep2.com.pl':
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE] = 'sklep1';
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_TYPE] = 'website';
break;
case 'sklep1.com.pl':
case 'www.sklep1.com.pl':
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE] = 'sklep1';
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_TYPE] = 'website';
break;
}
a plik .htaccess o:
SetEnvIf Host www\.sklep3.net\.pl MAGE_RUN_CODE=sklep3
SetEnvIf Host www\.sklep3.net\.pl MAGE_RUN_TYPE=website
SetEnvIf Host ^sklep3.net\.pl MAGE_RUN_CODE=sklep3
SetEnvIf Host ^sklep3.net\.pl MAGE_RUN_TYPE=website
RewriteCond %{HTTP_HOST} .*sklep3.net\.pl [NC]
RewriteRule .* - [E=MAGE_RUN_CODE:sklep3]
RewriteCond %{HTTP_HOST} .*sklep3.net\.pl [NC]
RewriteRule .* - [E=MAGE_RUN_TYPE:website]
SetEnvIf Host www\.sklep2.com\.pl MAGE_RUN_CODE=sklep1
SetEnvIf Host www\.sklep2.com\.pl MAGE_RUN_TYPE=website
SetEnvIf Host ^sklep2.com\.pl MAGE_RUN_CODE=sklep1
SetEnvIf Host ^sklep2.com\.pl MAGE_RUN_TYPE=website
RewriteCond %{HTTP_HOST} .*sklep2.com\.pl [NC]
RewriteRule .* - [E=MAGE_RUN_CODE:sklep1]
RewriteCond %{HTTP_HOST} .*sklep2.com\.pl [NC]
RewriteRule .* - [E=MAGE_RUN_TYPE:website]
SetEnvIf Host www\.sklep1.com\.pl MAGE_RUN_CODE=sklep1
SetEnvIf Host www\.sklep1.com\.pl MAGE_RUN_TYPE=website
SetEnvIf Host ^sklep1.com\.pl MAGE_RUN_CODE=sklep1
SetEnvIf Host ^sklep1.com\.pl MAGE_RUN_TYPE=website
RewriteCond %{HTTP_HOST} .*sklep1.com\.pl [NC]
RewriteRule .* - [E=MAGE_RUN_CODE:sklep1]
RewriteCond %{HTTP_HOST} .*sklep1.com\.pl [NC]
RewriteRule .* - [E=MAGE_RUN_TYPE:website]
Niestety jedyny działający sklep, to ten, na którego domenie został zainstalowany (sklep2.com.pl).
Czy na 2 pozostałe domeny powinienem również wrzucić jakieś pliki? Dodatkowe domeny nie są skonfigurowane (nie mają żadnych plików .htaccess czy index.php).
Jaki plik powinien się tam znajdować i co zawierać?
Zrobiłem przekierowanie z domeny sklep3.net.pl na sklep2.com.pl
RewriteEngine on RewriteRule (.*) http://sklep2.com.pl/$1 [R=301,L]
ale wówczas wyświetla się adres i strona tego drugiego - sklep2.com.pl. :-(
NIe potrzebujesz zadnych dodatkowych plikow, domeny korzystaja z jednego katalogu magento.
Moje ustawienia:
/etc/apache2/sites-available/000-default.conf
<VirtualHost *:80> ServerAdmin mail@gmail.com ServerName domain1.name ServerAlias www.domain1.name DocumentRoot /var/www/html/mag/ SetEnv MAGE_RUN_CODE "base" SetEnv MAGE_RUN_TYPE "website" ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> <VirtualHost *:80> ServerAdmin mail@gmail.com ServerName domain2.name ServerAlias www.domain2.name DocumentRoot /var/www/html/mag/ SetEnv MAGE_RUN_CODE "domaindwa" SetEnv MAGE_RUN_TYPE "website" ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
plus /etc/hosts
ip domena1 ip domena2
htaccess in magento directory:
SetEnvIf Host www\.domain1\.name MAGE_RUN_CODE=base SetEnvIf Host www\.domain1\.name MAGE_RUN_TYPE=website SetEnvIf Host ^domain1\.name MAGE_RUN_CODE=base SetEnvIf Host ^domain1\.name MAGE_RUN_TYPE=website SetEnvIf Host www\.domain2\.name MAGE_RUN_CODE=domaindwa SetEnvIf Host www\.domain2\.name MAGE_RUN_TYPE=website SetEnvIf Host ^domain2\.name MAGE_RUN_CODE=domaindwa SetEnvIf Host ^domain2\.name MAGE_RUN_TYPE=website
Problem w tym, że nie mam dostępu do plików konfiguracyjnych serwera (współdzielony) :-(
Z tego co wiem, to rozwiązaniem jest chyba tylko serwer VPS.
Najlepiej zapytaj sie dostawcy swojego serwera czy jest taka mozliwosc. Moze masz jakies ustawienia w WHS czy tam Cpanel ( nie zabardzo uzywam tych rzeczy wiec srednio sie orientuje co tam jest)
Jaki to jest serwer? moze znam..
Z tanich vps polecam (jest to Cloud Service):
Tylko na magento 2 musi byc te 2 GB ramu, mozna to troche obejsc na Digitalocean bo zaplacic za najmniejszy i pozniej zeskalowac na wiekszy ram z ta sama iloscia dysku. I wtedy wychodzi jakies 50 zł miesiecznie.
Na 1GB Ram mozna zaczac przygotowywac wszystko placac mniej, a pozniej przeskoczyc.
Pozdrawiam