example.com -> domyślna wersja angielska
pl.example.com -> polska
fr.example.com -> francuska
de.example.com -> niemiecka
Struktura katalogów wygląda tak (czyli podkatalogi subdomen znajdują się w głównym katalogu):
/public_html/ -> główny katalog domeny, tu zainstalowane jest Magento
/public_html/pl/
/public_html/fr/
/public_html/de/
Nie wiem jak to rozwiązać.
- Czy muszę stworzyć 4 witryny (website), a w każdej z nich po jednym sklepie (store) i jednym widoku sklepu (store view)?
- Czy jedną witrynę z czterema sklepami, a w każdym z nich po jednym widoku?
- Czy raczej jedną witrynę i jeden sklep z czterema widokami?
Próbowałem zrobić to tak: utworzyłem jedną witrynę, w niej jeden sklep, a w nim 4 widoki: en, pl, fr, de, po jednym dla każdego języka. Dla każdego widoku ustawiłem odpowiedni adres w polu System > Configuration > Web > Unsecure > Base URL:
http://example.com/ -> dla domyślnej wersji angielskiej
http://pl.example.com/ -> dla wersji polskiej, itd...
http://fr.example.com/
http://de.example.com/
1) Teraz co dalej? Sama konfiguracja w panelu nie wystarczy. Teraz trzeba chyba do podkatalogu każdej subdomeny przenieść index.php i jakoś go zmodyfikować. Może ktoś podpowiedzieć jak to zrobić? I jakie inne pliki trzeba jeszcze poprzenosić do podkatalogów subdomen? ".htaccess" też?
2) Czego jeszcze może brakować w mojej konfiguracji? Ponieważ będzie to jeden sklep ale w kilku językach to koszyk powinien być oczywiście współdzielony pomiędzy subdomenami. Czy trzeba w związku z tym wpisać coś w pola Cookie Path i Cookie Domain w System > Configuration > Web > Unsecure > Base URL ?
3) Gdy testowo stawiałem multi-sklep na kilku osobnych domenach robiłem to na hostingu współdzielonym, gdzie każda domena wskazywała na ten sam główny katalog z instalacją Magento. Wtedy stworzyłem 4 witryny (po jednej dla każdego języka), każda miała jeden domyślny widok sklepu. Potem wystarczyło już tylko dodać do index.php na końcu kilka linii i wszystko działało:
Kod: Zaznacz cały
$myHost = explode(':', $_SERVER['HTTP_HOST']);
switch ($myHost[0]) {
case "domena.pl":
$_SERVER['MAGE_RUN_CODE'] = "pl";
$_SERVER['MAGE_RUN_TYPE'] = "website";
break;
case "domena.fr":
$_SERVER['MAGE_RUN_CODE'] = "fr";
$_SERVER['MAGE_RUN_TYPE'] = "website";
break;
case "domena.de":
$_SERVER['MAGE_RUN_CODE'] = "de";
$_SERVER['MAGE_RUN_TYPE'] = "website";
break;
}
/* Store or website code */
$mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : '';
/* Run store or run website */
$mageRunType = isset($_SERVER['MAGE_RUN_TYPE']) ? $_SERVER['MAGE_RUN_TYPE'] : 'store';
Mage::run($mageRunCode, $mageRunType);
Da się ten kod wykorzystać w przypadku z subdomenami w osobnych katalogach na serwerze?
Próbowałem znaleźć jakieś informacje na ten temat, ale albo coś robię źle, albo te sposoby się już zdeaktualizowały:
http://www.crucialwebhost.com/blog/how- ... ain-method
http://www.magentocommerce.com/wiki/4_- ... site-setup
http://blog.baobaz.com/en/blog/setting- ... -or-stores
Będę wdzięczny za jakąkolwiek pomoc.