Dwie wersje językowe ($_GET), a osobne domeny

0

Witam,

Mam strone ktora posiada dwie wersje jezykowe. Jesli w adresie pojawi się parametr get, dokladniej to lang=en wowczas strona bedzie po angielsku, tak samo kolejne linki na stronie beda automatycznie miec doklejane ?lang=en aby caly czas byla angielska wersja jezykowa. W przypadku braku parametru lang, dane na stronie są w języku polskim.

Teraz pytanie czy da sie zrobic tak, aby wchodząc na strone www.example.pl byla moja polska strona, a na www.example.com byla wersja angielska? W sensie, podpiac domene .com pod subkatalog "en" i jakos w .htaccess ustawić, by ten parametr lang=en byl automatycznie (niewidzialnie) doklejany?
Albo jakis inny sposob? np. podpiac domene .com pod ten sam katalog co domene .pl ale jakos w .htaccess ustawic parametr lang=en jeśli wykryje, ze domana to .com? Albo gdzies w ustawieniach konfiguracji domeny .com?
Da się tak w ogóle?

Chcialbym uniknac osobnych wersji strony- bo w razie potrzeby zmian, bedzie je trzeba robic zawsze podwojnie.
DZIEKUJE Z GORY ZA SUGESIE I POMOC :)

0

Nie podpinaj domeny pod inny katalog. W .htaccess umieść regułę RewriteCond, która na podstawie TLD (końcówki .com) dopisze do adresu na końcu &lang=en. Wtedy nawet w linkach nie będzie musiało być jawnie tego parametru. Z pewnością będzie to ładniej wyglądać.

0

Dzięki za wskazówki!

Szukam coś w google, jednak nie mogę znaleźć dobrego przykładu który by mi pomógł. A zanim to wypróbuję musze wiedziec, ze bedzie dzialalo (jest to strona ktora dziala juz online a obecnie jest to zrobione przez zwykle przekierowanie z domeny .com na .pl/?lang=en).
Więc domene .com podepne pod ten sam katalog co .pl.

RewriteCond %{HTTP_HOST}=example.com
RewriteRule ^/.*$ $1&lang=en [L]

Czy to by dzialalo? Hmm, do tego jest tez taka kwestia ze np. w indeksie (index.php), tzn. mam na mysli strona startową, bedzie trzeba dokleić ?lang=en zamiast &lang=en, gdy http://example.pl/&lang=en nie zadziala...
Bede wdzieczny bardzo za pomoc pozdrawiam:)

0

Kwestią poprawnej modyfikacji query stringa zajmie się mod_rewrite, jeżeli dodasz flagę QSA (http://httpd.apache.org/docs/2.2/rewrite/flags.html#flag_qsa).

0

A czy ogolnie ten kod jest poprawny?
(dodam wspomniana flage na koncu drugiej linijki)

Czy zupelnie nie w ten desen?

Pytam, dlatego ze tak jak wspomnialem - musze miec pewnosc ze bedzie dzialac, a nie odlacze sobie domene i strona bedzie przez pare godzin ladnych niepoprawnie dzialac gdy ja bede testowal. Wiec bede bardzo wdzieczny za info lub ew. pomoc jak to napisac poprawnie ;)

0

.* $1?lang=en
Powinno działać. Nie testujesz chyba wszystkiego na produkcji?

0

Dzięki. Czyli można powiedzieć, że tamten kod był dobry?

RewriteCond %{HTTP_HOST}=example.com
RewriteRule ^.*$ $1?lang=en [QSA]

PS. nie, wlasciwie nie testuje nic na produkcji. Niestety w kwestii tych domen ciężko mi zrobić inaczej, wiem że niby można coś grzebać w apachu by zrobić domene inną niż localhost, jednak ja tego (jeszcze) nie umiem, a nie wiem czy to taka prosta sprawa...

0

Tak, aczkolwiek .* to to samo co ^.*$. Kropka domyślnie pasuje do wszystkiego.

Niestety w kwestii tych domen ciężko mi zrobić inaczej, wiem że niby można coś grzebać w apachu by zrobić domene inną niż localhost, jednak ja tego (jeszcze) nie umiem, a nie wiem czy to taka prosta sprawa...

W hosts ustaw sobie 127.0.0.1 dla example.pl i example.com, a w ustawieniach wirtualki w Apache ustaw ServerName example.pl i ServerAlias example.com.

0
Rev napisał(a)

Tak, aczkolwiek .* to to samo co ^.*$. Kropka domyślnie pasuje do wszystkiego.

Tak, tak, wiem, że pasuje do wszystkiego ;) Po prostu skopiowałem dwie linijki które wcześniej napisałem i zmieniłem tylko flagę,bo tak było szybciej napisac posta ;)

Niestety w kwestii tych domen ciężko mi zrobić inaczej, wiem że niby można coś grzebać w apachu by zrobić domene inną niż localhost, jednak ja tego (jeszcze) nie umiem, a nie wiem czy to taka prosta sprawa...

W hosts ustaw sobie 127.0.0.1 dla example.pl i example.com, a w ustawieniach wirtualki w Apache ustaw ServerName example.pl i ServerAlias example.com.</quote>
sprawdzę, dzięki.

w razie czego dam znać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1