Przekierowanie podstrony (również nieistniejącej) do domeny głównej.

0

Hej. Posiadałem stronę na której użytkowników przekierowywałem na podstrony w określonych wersjach językowych w zależności od tego jakiego języka używali w swojej przeglądarce internetowej. Dla użytkowników z językiem polskim była podstrona po polsku np: mojastrona.com/pl, dla Niemców po niemiecku: mojastrona.com/de itd. Wszystko to odbywało się za pomocą .htaccess to jest bodajże ten kod:

RewriteEngine On
RewriteCond %{HTTP} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteCond %{HTTP:Accept-Language} ^pl [NC]
RewriteRule ^$ /pl/ [L,R=301]

RewriteCond %{HTTP:Accept-Language} ^de [NC]
RewriteRule ^$ /de/ [L,R=301]

RewriteRule ^$ /en/ [L,R=301]

działo się tak po wpisaniu domeny głównej, przekierowywało ich również po wpisaniu adresu domeny z podstroną która nawet nie istniała na serwerze, np: mojadomena.com/jakaspodstrona

Jednak zdecydowałem się że będę użytkowników przekierowywał na podstawie IP kraju z którego wchodzą na stronę. Z prozaicznego powodu. Niemcy, Austriacy i część Szwajcarów używa niemieckiej wersji przeglądarki, ale niekoniecznie muszą być zainteresowani tą samą treścią. Wykorzystałem do tego geoPlugin: http://www.geoplugin.com/_media/webservices/geoplugin.class.phps
oraz krótki kod .php

<?php
require_once('geoplugin.class.php');
$geoplugin = new geoPlugin();
$geoplugin->locate();
// create a variable for the country code
$var_country_code = $geoplugin->countryCode;
// redirect based on country code:
if ($var_country_code == "PL") {
header('Location: http://sport.pl/');
}
else if ($var_country_code == "DE") {
header('Location: http://sport.de/');
}
else {
header('Location: http://sport.com/');
}
?>

Pomysł zaczerpnąłem z wątku pt: "how to redirect domain according to country IP address" ze strony StackOverflow.
Działa jak należy. Dodam że ten sposób przekierowuje ich bezpośrednio na strony zewnętrzne (załóżmy że na strony które widnieją w powyższym kodzie) a wcześniej przekierowywało ich na podstronę na mojej stronie.

Jednak teraz gdy wpiszę adres z podstroną (nieistniejącą) to nie wykrywa mi strony. Gdy zamieszczę komendę o przekierowaniu w .htaccess to pokazuje: ERR_TOO_MANY_REDIRECTS tak jakby tych przekierowań było za dużo
Chciałem to rozwiązać połowicznie tworząc ręcznie katalog: jakaspodstrona z powyższym skryptem, ale gdy wpiszę mojastrona.com/jakaspodstrona to pokazuje się biała strona, nie ma nic

Jak rozwiązać ten problem?

0
  1. Mieszasz http z https
  2. Wybierz tylko jedno miejsce w którym realizujesz przekierowania.
  3. Za mało kodu by powiedzieć coś więcej.
0

Przekirowanie htaccess jest nadrzedne wiec musisz wywalic wszystko z tego pliku. bo tak to po wpisaniu strony idzie na dana podstrone np DE a potem jak jestes z polski znowu kieruje na adres z domena PL a tam wykrywa znowu DE i znowu kiruje na DE a tam na poslki dlatego masz Too many Redirect. ZOstaw jak bylo i nie dotykaj

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