Page 1 of 2
мультилангвич и внешний скрипт alt_out зацыкливание
Posted: Wed May 20, 2015 5:53 am
by hrulik
Проблема в следующем: происходит зацикливание редиректа по языку если установлен alt_out
т.е. ставим Auto Switch language = yes, Auto redirect to existing language = http://{DOMAIN}/{LANGUAGE}/{ORIGINAL_REQUEST}. т.е. всё стандартно, реврайты стандартные
припереходе на галеру получаем циклический редирект
http://prntscr.com/778ue7
если alt_out не установлен, всё работает отлично
SmartCJ Pro V 1.51 Build 201501121623
Re: мультилангвич и внешний скрипт alt_out зацыкливание
Posted: Wed May 20, 2015 1:15 pm
by admin
Вероятнее всего у вас неправильные реврайты для 51й версии, там при отсутствии параметра ротации не должно идти через аут и соотв этого редиректа быть не должно
Re: мультилангвич и внешний скрипт alt_out зацыкливание
Posted: Wed May 20, 2015 1:24 pm
by hrulik
реврайты стандартные из вики:
Code: Select all
if (!-e $request_filename){
rewrite "^/([^/]{2})/(.*)$" /$2?$query_string&force_lng=$1;
}
if ($args) {
rewrite ^/gallery/([^/]+)/index.html$ /scj/cgi/out.php?link=images/$query_string&url=content&slug=$1 last;
}
rewrite ^/gallery/([^/]+)/index.html$ /scj/tube/?slug=$1 last;
rewrite ^/gallery/([^/]+)/$ /scj/tube/?slug=$1 last;
rewrite ^/gallery/([^/]+)/(.*).html$ /scj/tube/?slug=$1&item_id=$2&item_type=image last;
у меня nginx. А ну да получается на первом правиле добавляется &force_lng=$1
и уже идет через аут, как подправить?
И опять же если alt_out не установлен то лишних редиректов нету
Re: мультилангвич и внешний скрипт alt_out зацыкливание
Posted: Wed May 20, 2015 2:17 pm
by admin
А да, идет добавление языка.
А в галерах разные языки юзаются ?
Re: мультилангвич и внешний скрипт alt_out зацыкливание
Posted: Wed May 20, 2015 2:28 pm
by hrulik
Да в галерах тоже разные языки
Re: мультилангвич и внешний скрипт alt_out зацыкливание
Posted: Wed May 20, 2015 3:55 pm
by admin
Пришло в голову простое решение - добавить с урлу альт скрипта p=100
тогда при возврате его не будет скимить
Re: мультилангвич и внешний скрипт alt_out зацыкливание
Posted: Wed May 20, 2015 3:58 pm
by hrulik
Так его не скимит, вот что происходит
http://prntscr.com/778ue7,
Re: мультилангвич и внешний скрипт alt_out зацыкливание
Posted: Wed May 20, 2015 4:02 pm
by admin
Да, такой вариант не подходит тогда.
Проблема в том что его шлет на аут, а аут редиректит на альт аут.
Значит при возврате должен стоять какой-то парметр что б его не слало на аут.
Тогда можно например для альтаут добавить к урлу галеры например &asd и его вернет на
/en/gallery/index.html?asd
а в htaccess добавить примерно такое
RewriteCond %{QUERY_STRING} ^asd$
RewriteRule ^gallery/(.*)/index.html$ /scj/tube/?slug=$1 [L]
и это правило будет срабатывать до
if ($args) {
rewrite ^/gallery/([^/]+)/index.html$ /scj/cgi/out.php?link=images/$query_string&url=content&slug=$1 last;
}
и соотв не будет слать на аут который и шлет на альт аут
Re: мультилангвич и внешний скрипт alt_out зацыкливание
Posted: Wed May 20, 2015 4:19 pm
by hrulik
тогда клики по тумбам перестанут считаться, почему зацикливание не происходит когда alt_out не установлен? По сути то происходит то тоже самое
Re: мультилангвич и внешний скрипт alt_out зацыкливание
Posted: Wed May 20, 2015 4:27 pm
by admin
Почему еерстанут считаться ? в обычных то линках asd не будет
будет только в возврате от альта
Нет релиректа потому что с ауте идет так
1. есть альт - шлем на него
2. обрабатываем скимминг, инклудим tube/index.php если надо и тп
в вашем варианет получается что
- юзер кликает на /ru/gallery/asd/index.html?12x34x56
- его редиректит на alt_out.php?....
- тот шлет на /ru/gallery/asd/index.html который опять же попадает на аут который редиректит на альт аут
в варианте без альта пункт 1 не срабатывает, ауту кроме как на трейдеров никуда слать не надо.