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 не срабатывает, ауту кроме как на трейдеров никуда слать не надо.