03.08.2017, 08:23
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,108
|
|
samdo,
<a href="#" onclick="enRu()">English/Russian</a>
|
|
03.08.2017, 08:31
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
samdo,
не прочел сначала чего надо. Но все это ни к чему, то что rewrite не работает в nginx, это не так, просто у него иные инструкции. Есть даже готовые онлайн конверторы инструкций .htaccess для файла конфигурации nginx.
|
|
03.08.2017, 08:33
|
Кандидат Javascript-наук
|
|
Регистрация: 27.05.2017
Сообщений: 108
|
|
Сообщение от laimas
|
Если кнопки, это ссылки, так пропишите сразу в каждой нужный URL: domain/ru и domain/en, и не надо никаких скриптов.
|
Но в этом случае мы при переключении со страницы site.ru/some-page (например, на английский) мы попадаем на главную страницу (site.ru/en), а нам надо попасть на site.ru/en/some-page
P.S. рони, что-то не срабатывает
|
|
03.08.2017, 08:37
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от samdo
|
Но в этом случае мы при переключении со страницы site.ru/some-page (например, на английский) мы попадаем на главную страницу (site.ru/en), а нам надо попасть на site.ru/en/some-page
|
Это смотря как вы будете в кнопке ссылки формировать. У вас же раздельные домены, а значит на каждом по одной кнопке выбора языка. Кнопку кто выводит? Сервер. Ему что сложно подставлять в url ссылку адреса текущей страницы, но только другого домена?
|
|
03.08.2017, 08:44
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,108
|
|
samdo,
попробуйте так, копировать целиком
<script>
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
}
</script>
<a href="#" onclick="return enRu()">English/Russian</a>
|
|
03.08.2017, 08:57
|
Кандидат Javascript-наук
|
|
Регистрация: 27.05.2017
Сообщений: 108
|
|
рони, почти
Добавляется "/en/", но в конец URl-a (получается вот так site.ru/some-page/en/), а нам нужно вот так site.ru/en/some-page/
|
|
03.08.2017, 09:03
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,108
|
|
samdo,
function enRu() {
var x = window.location+"";
var reg = /\/en\//;
if(reg.test(x)) x = x.replace(reg,"/");
else {
x = x.replace("site.ru","site.ru/en");
}
window.location = x
}
|
|
03.08.2017, 09:18
|
Кандидат Javascript-наук
|
|
Регистрация: 27.05.2017
Сообщений: 108
|
|
рони, ДА, это оно, работает
P.S. А реально ли, чтобы при наведении на эту ссылку в строке состония показывался нужный адрес (site.ru/en/some-page), а не "site.ru/en/#" (надеюсь я не сильно обнаглел )
|
|
03.08.2017, 09:19
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,791
|
|
Сообщение от samdo
|
Но в этом случае мы при переключении со страницы site.ru/some-page (например, на английский) мы попадаем на главную страницу (site.ru/en), а нам надо попасть на site.ru/en/some-page
|
$_SERVER['HTTP_REFERER'] не определяется?
|
|
03.08.2017, 09:25
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
samdo,
перестаньте хренью маяться, это не JS работа, этим должен заниматься сервер, формируя сразу нужный URL в ссылке:
<a href="http://site.ru/<?=ltrim($_SERVER['REQUEST_URI'], '/en')?>">Russian</a>
<a href="http://site.ru/en<?=$_SERVER['REQUEST_URI']?>">English</a>
Последний раз редактировалось laimas, 03.08.2017 в 10:08.
|
|
|
|