0

Мне нужно перенаправить многоязычный сайт в новый домен и использовать для него файл .htaccess. Я перенаправляю все старые страницы на свои новые в новом домене.Постоянная переадресация 301 с /? Lang = de

OLD URLS

Englisch 
    Main page: www.olddomain.com 
    Sub pages: www.olddomain.com/bike-rental 

Spanish 
    Main: www.olddomain.com/?lang=es 
    Sub pages: www.olddomain.com/bike-rental?lang=es 

German 
    Main: www.olddomain.com/?lang=de 
    Sub pages: www.olddomain.com/bike-rental?lang=de 

NEW URL,

Englisch 
    Main page: www.new-domain.com 
    Sub pages: www.new-domain.com/bike-rental 

Spanish 
    Main: www.new-domain.com/es 
    Sub pages: www.new-domain.com/es/alquiler-de-bicis 
German 
    Main: www.new-domain.com/de 
    Sub pages: www.new-domain.com/de/fahrradvermietung 

Я понял, что это не работает с нормальным редиректа в .htaacces файл , такие как:

Redirect 301 /?lang=de http://www.new-domain.com/de/ 
    Redirect 301 /bike-rental?lang=de http://www.new-domain.com/de/fahrradvermietung 

Любые идеи как перенаправить эти старые URL-адреса на новые?

Благодаря

+1

как вы добиться перенаправления? через код или веб-сервер? упомяните более подробно –

ответ

0

Начиная с PHP 5.3.0 Эта переменная была добавлена:

$locale = Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']); 
echo $locale; // returns "en_US" 
$localeshort = substr($locale, -2); 
echo $localeshort; // returns "US" 

Если вы используете это, вы можете сделать редирект с чем-то вроде:

Header("Location: index.php?lang=".$localeshort); 
+0

Спасибо и извините, но я не понимаю ни слова. Вы уверены, что прочитали мой вопрос? Мне нужно сделать 301 переадресацию из одного домена в другой. Как перенаправить из: http://www.olddomain.com/bike-rental?lang=de to http: //www.newdomain .com/de/fahrradvermietung похоже? – user2439629

0

ИЛИ использования: this tool, чтобы создать перенаправление, повторите это, пока у вас не будет всех языков. IMAGE

+0

... спасибо, но мне нужно 301 перенаправление на новый домен ... и этот инструмент, безусловно, не перенаправляет URL-адреса в новый домен ... – user2439629

0

Смотрите мое предыдущее сообщение: Поскольку PHP эта функция была добавлена:

$locale = Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']); 
echo $locale; // returns "en_US" 
$localeshort = substr($locale, -2); 
echo $localeshort; // returns "US" 

Использование в ваших .htacces

RewriteEngine on 

RewriteRule ^(.*)$ /index.php [R=permanent,L] 

Теперь он будет перенаправлен на страницу на начать. Это единственное решение, которое я знаю.

+0

спасибо, но это был не вопрос :-) – user2439629

0

Вы можете сделать что-то подобное в HTAccess:

RewriteCond %{REQUEST_URI} !^/bike-rental$ 
RewriteCond %{QUERY_STRING} ^lang=(.*)$ 
RewriteRule ^(.*)/ /bike-rental?lang=%1 [L,R=301] 

(испытано и добавил условие, чтобы избежать круговой рерайт)

+0

извините, но как бы эта ссылка на новый домен мне нужно перенаправить: www.old-domain.com/?lang=de к www.new-domain.com/de или подстраниц: www.old-domain.com/ bike-rental /? lang = de to www.new-domain.com/de/fahrradvermietung – user2439629

+0

Всегда можно добавить в RewriteRule^(. *)/http // www.new-domain.com/bike-rental? lang = % 1 [L, R = 301], а для подстраниц вам нужно немного изменить – Mork