мультилангвич и внешний скрипт alt_out зацыкливание

hrulik
Posts: 495
Joined: Sat Apr 14, 2012 7:06 am

мультилангвич и внешний скрипт alt_out зацыкливание

Post 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
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

Re: мультилангвич и внешний скрипт alt_out зацыкливание

Post by admin »

Вероятнее всего у вас неправильные реврайты для 51й версии, там при отсутствии параметра ротации не должно идти через аут и соотв этого редиректа быть не должно
Don't forget to run script update
hrulik
Posts: 495
Joined: Sat Apr 14, 2012 7:06 am

Re: мультилангвич и внешний скрипт alt_out зацыкливание

Post 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 не установлен то лишних редиректов нету
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

Re: мультилангвич и внешний скрипт alt_out зацыкливание

Post by admin »

А да, идет добавление языка.

А в галерах разные языки юзаются ?
Don't forget to run script update
hrulik
Posts: 495
Joined: Sat Apr 14, 2012 7:06 am

Re: мультилангвич и внешний скрипт alt_out зацыкливание

Post by hrulik »

Да в галерах тоже разные языки
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

Re: мультилангвич и внешний скрипт alt_out зацыкливание

Post by admin »

Пришло в голову простое решение - добавить с урлу альт скрипта p=100
тогда при возврате его не будет скимить
Don't forget to run script update
hrulik
Posts: 495
Joined: Sat Apr 14, 2012 7:06 am

Re: мультилангвич и внешний скрипт alt_out зацыкливание

Post by hrulik »

Так его не скимит, вот что происходит http://prntscr.com/778ue7,
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

Re: мультилангвич и внешний скрипт alt_out зацыкливание

Post 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;
}

и соотв не будет слать на аут который и шлет на альт аут
Don't forget to run script update
hrulik
Posts: 495
Joined: Sat Apr 14, 2012 7:06 am

Re: мультилангвич и внешний скрипт alt_out зацыкливание

Post by hrulik »

тогда клики по тумбам перестанут считаться, почему зацикливание не происходит когда alt_out не установлен? По сути то происходит то тоже самое
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

Re: мультилангвич и внешний скрипт alt_out зацыкливание

Post by admin »

Почему еерстанут считаться ? в обычных то линках asd не будет
будет только в возврате от альта


Нет релиректа потому что с ауте идет так
1. есть альт - шлем на него
2. обрабатываем скимминг, инклудим tube/index.php если надо и тп

в вашем варианет получается что
- юзер кликает на /ru/gallery/asd/index.html?12x34x56
- его редиректит на alt_out.php?....
- тот шлет на /ru/gallery/asd/index.html который опять же попадает на аут который редиректит на альт аут

в варианте без альта пункт 1 не срабатывает, ауту кроме как на трейдеров никуда слать не надо.
Don't forget to run script update
Post Reply