Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как добавить в url адрес текущей страницы (https://javascript.ru/forum/misc/70002-kak-dobavit-v-url-adres-tekushhejj-stranicy.html)

samdo 02.08.2017 21:15

Как добавить в url адрес текущей страницы
 
Приветствую!
Подскажите как реализовать следующее:
есть сайт с 2-мя языковыми версиями (ru и en), русская версия сайта располагается по адресу site.ru, а английская - по адресу site.ru/en. Адреса страниц имеют одинаковые url-ы, за исключением того, что на английской версии в url-е присутсвует подкаталог /en/. Нужно, чтобы при переключении на английский, к ссылке добавлялся этот подкаталог (en) и при этом сохранялся адрес страницы.
Объясню на примере:
Пользователь находится на странице site.ru/some-page, при клике на переключатель языка (EN) его редиректит на site.ru/en/some-page. И наоборот.
Решение через .htaccess не подходит, т.к. используется nginx, к настройкам сервера доступа тоже нет, поэтому будет круто если это будет js
Заранее спасибо.

j0hnik 02.08.2017 21:41

будет ли сайт продвигаться в поисковых системах?

samdo 02.08.2017 21:43

да, планируется

j0hnik 02.08.2017 21:51

Тогда делайте нормальную перелинковку, а не средствами JS.

samdo 02.08.2017 21:54

А каким же еще образом я добавлю к url-у site.ru/some-page вот это "/en/", чтобы получилось site.ru/en/some-page ?

j0hnik 02.08.2017 21:59

Цитата:

Сообщение от samdo (Сообщение 460434)
А каким же еще образом я добавлю к url-у site.ru/some-page вот это "/en/", чтобы получилось site.ru/en/some-page ?

Точно таким же, как и делали перелинковку между станицами.

samdo 02.08.2017 22:06

Вы наверное меня не правильно поняли, подставлять в URL вот это "/en" нужно только при клике на переключатель языков, а все страницы в пределах каждого сайта линкуются, естественно, обычным способом.

рони 02.08.2017 22:47

samdo,
function enRu() {
   var x = window.location;
   var reg = /\/en\//;
   if(reg.test(x)) x = x.replace(reg,"/");
   else {
   var n = x.lastIndexOf("/");
   x = x.slice(0,n) + "/en" + x.slice(n)
   }
   window.location = x
}

samdo 03.08.2017 07:16

Цитата:

Сообщение от рони (Сообщение 460437)
samdo,
function enRu() {
   var x = window.location;
   var reg = /\/en\//;
   if(reg.test(x)) x = x.replace(reg,"/");
   else {
   var n = x.lastIndexOf("/");
   x = x.slice(0,n) + "/en" + x.slice(n)
   }
   window.location = x
}

А как должен выглядеть html в данном случае? у меня на данный момент он выглядит так:
<a href="/en/">English</a>
JS не срабатывает.

laimas 03.08.2017 08:19

Цитата:

Сообщение от samdo
у меня на данный момент он выглядит так:
<a href="/en/">English</a>

Если кнопки, это ссылки, так пропишите сразу в каждой нужный URL: domain/ru и domain/en, и не надо никаких скриптов.


Часовой пояс GMT +3, время: 15:10.