Stránka 1 z 1

Redirect na evidenci

Napsal: 13 říj 2014, 19:47
od Ondrej.Profant
Prosím o zřízení redirektu evidence.pirati.cz => na poslední stránku Evidence lobbistických kontaktů. S poslední stránkou je to asi složitější, ale věřím, že si Krtek poradí.

Re: Redirect na evidenci

Napsal: 13 říj 2014, 20:05
od Martin.Kucera
Kdyby měl neregistrovabný uživatel defaultně nastaveno zobrazování příspěvků od nejnovějších sestupně (tj. nejnovější příspěvek by měl vždy na první stránce vlákna nahoře), problém by to vyřešilo. Ale nevím, zda tohle nastavení chceme obecně (u evidence lob. kontaktů to nevadí, protože to je infovlákno, kde se příspěvky zpravidla neřetězí).

Re: Redirect na evidenci

Napsal: 13 říj 2014, 20:17
od Tomas.Klapka
Poslední stránka je jednoduchá...
stačí to poslední číslo v URL dát dostatečně vysoké:oznameni-f595/evidence-lobbistickych-ko ... 99999.html
viz i možnost psaná na stackoverflow, jak odkazuje Ondra.

Poslední post na stránce je už horší, kdybyste chtěli :)

Re: Redirect na evidenci

Napsal: 14 říj 2014, 15:52
od Lukas.Novy
Done.

Kód: Vybrat vše

server {
    listen              80;

    server_name evidence.pirati.cz
    ;

    location /abs/ {
        internal;
        proxy_pass_request_headers off;
        proxy_set_header Host "";
        proxy_set_header Host "forum.pirati.cz";
        set $a /oznameni-f595/evidence-lobbistickych-kontaktu-t13315-$args.html;
        proxy_pass https://77.87.240.85$a;
    }

    location / {
        lua_need_request_body on;
             client_max_body_size 50k;
             client_body_buffer_size 50k;
        content_by_lua '
        local last_page = ngx.location.capture("/abs/", { args = "999999" })
        local last_page_location = last_page.header["Location"]
        local m = ngx.re.match(last_page_location, [[kontaktu-t13315-(\\d+).html]])
        local page = m[1];
        last_page = ngx.location.capture("/abs/", { args = page })
        m = ngx.re.gmatch(last_page.body, [[href="(https://forum.pirati.cz/oznameni-f595/evidence-lobbistickych-kontaktu-t13315-\\d+.html#p\\d+)"]])
        local l = nil
        while true do
            local mm = m()
            if not mm then
                break
            end
            l = mm[1]
        end
        ngx.redirect(l);
        ';
    }
}