Autor Zpráva
matak
Profil
tohle je fičura od H1

    #H1 analytics ficura - start

    RewriteCond %{QUERY_STRING} ^(utm_.*)$
    RewriteRule ^(.*)$ /$1#%1? [R=301,NE,L]

    RewriteCond %{QUERY_STRING} ^(.*?)&(utm_.*)$
    RewriteRule ^(.*)$ /$1?%1#%2 [R=301,NE,L]

    #H1 analytics ficura - end

mají to někde na stránkách, způsobí to, že vše co je za otazníkem přesune za mřížku

vstup

http://www.trendy-nabytek.cz/zbozi/auto-audi-a7-na-dalkove-ovladani/p-99600?utm_source=newsletter&utm_medium=email&utm_campaign=vanocni-darky-pro-male-i-velke-se-slevou-az-67&x=1

výstup
http://www.trendy-nabytek.cz/zbozi/auto-audi-a7-na-dalkove-ovladani/p-99600#utm_source=newsletter&utm_medium=email&utm_campaign=vanocni-darky-pro-male-i-velke-se-slevou-az-67&x=1

no ale přece správný výstup by měl být
http://www.trendy-nabytek.cz/zbozi/auto-audi-a7-na-dalkove-ovladani/p-99600?x=1#utm_source=newsletter&utm_medium=email&utm_campaign=vanocni-darky-pro-male-i-velke-se-slevou-az-67

nevíte jak to fixnout?
Kajman
Profil
Oni asi počítají s tím, že utm parametry budou až na konci.

Pokud budou alespoň u sebe, šlo by snad něco takového

RewriteCond %{QUERY_STRING} ^(utm_[^&]*(&utm_[^&]*)*)$
RewriteRule ^(.*)$ /$1#%1? [R,NE,L]

RewriteCond %{QUERY_STRING} ^(.*?)&?(utm_[^&]*(&utm_[^&]*)*)(.*?)$
RewriteRule ^(.*)$ /$1?%1%4#%2 [NE,C]
RewriteCond %{QUERY_STRING} ^&?(.*?)$
RewriteRule ^(.*)$ $1?%1 [R,NE,L]
matak
Profil
díky ale to tak nějak nefunguje

tak tohle nějak zduplikuje url pred otaznikem

http://www.trendy-nabytek.cz/zbozi/auto-audi-a7-na-dalkove-ovladani/p-99600/auto-audi-a7-na-dalkove-ovladani/p-99600?x=1#utm_source=newsletter&utm_medium=email&utm_campaign=vanocni-darky-pro-male-i-velke-se-slevou-az-67


jinak ano ze budou u sebe na to by se spolehnout dalo
Kajman
Profil
A takhle to taky zlobí?
RewriteBase /

RewriteCond %{QUERY_STRING} ^(utm_[^&]*(&utm_[^&]*)*)$
RewriteRule ^(.*)$ $1#%1? [R,NE,L]
 
RewriteCond %{QUERY_STRING} ^(.*?)&?(utm_[^&]*(&utm_[^&]*)*)(.*?)$
RewriteRule ^(.*)$ $1?%1%4#%2 [NE,C]
RewriteCond %{QUERY_STRING} ^&?(.*?)$
RewriteRule ^(.*)$ $1?%1 [R,NE,L]
matak
Profil
taky zlobí :(
Kajman
Profil
A žádná jiná pravidla a přesměrování, se kterými to může kolidovat, tam nejsou?
matak
Profil
<IfModule mod_rewrite.c>
    RewriteEngine On
    
    RewriteRule ^vyhledavani/$ /search/ [R=301,L]

    #H1 analytics ficura - start

    RewriteCond %{QUERY_STRING} ^(utm_.*)$
    RewriteRule ^(.*)$ /$1#%1? [R=301,NE,L]

    RewriteCond %{QUERY_STRING} ^(.*?)&(utm_.*)$
    RewriteRule ^(.*)$ /$1?%1#%2 [R=301,NE,L]

#    RewriteCond %{QUERY_STRING} ^(utm_[^&]*(&utm_[^&]*)*)$
#    RewriteRule ^(.*)$ /$1#%1? [R,NE,L]
 
#    RewriteCond %{QUERY_STRING} ^(.*?)&?(utm_[^&]*(&utm_[^&]*)*)(.*?)$
#    RewriteRule ^(.*)$ $1?%1%4#%2 [NE,C]
#    RewriteCond %{QUERY_STRING} ^&?(.*?)$
#    RewriteRule ^(.*)$ /$1?%1 [R,NE,L]

    #H1 analytics ficura - end



    RewriteRule ^robots.txt /robots.php [L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^newsletter([^/]+)\.gif$ newsletter.php?identity=$1 [L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^media/upload/(.*)\.(jpg|png|gif)$ image.php [L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]
</IfModule>



to je vše co tam je, ale tady jde o to ze to duplikuje tu url pred otaznikem ne? nejde to cele nejak zjednodusit je to fakt tak slozity dotaz? tady asi neco jako replace moc neni ze? to se musi takhle skladat, bylo by hodne znat kdyby toto pravidlo bylo provadeno v basepresenteru ve startupu v php v nette? vykon serveru znatelny?
Kajman
Profil
Pravidla ze [#4] by na první pohled kolidovat nemusela. Případně si zapněte rewritelog na nalezení problému.
<IfModule mod_rewrite.c>
    RewriteEngine On

RewriteBase /
    
    RewriteRule ^vyhledavani/$ /search/ [R=301,L]
 
    #H1 analytics ficura - start
 
RewriteCond %{QUERY_STRING} ^(utm_[^&]*(&utm_[^&]*)*)$
RewriteRule ^(.*)$ $1#%1? [R,NE,L]

RewriteCond %{QUERY_STRING} ^(.*?)&?(utm_[^&]*(&utm_[^&]*)*)(.*?)$
RewriteRule ^(.*)$ $1?%1%4#%2 [NE,C]
RewriteCond %{QUERY_STRING} ^&?(.*?)$
RewriteRule ^(.*)$ $1?%1 [R,NE,L]
 
    #H1 analytics ficura - end
 
 
 
    RewriteRule ^robots.txt /robots.php [L]
 
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^newsletter([^/]+)\.gif$ newsletter.php?identity=$1 [L]
 
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^media/upload/(.*)\.(jpg|png|gif)$ image.php [L]
 
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]
</IfModule>
matak
Profil
s tím nehnu, nechtěl by si to vzít jako placenou výpomoc?


tak ja si myslim ze fakt nejlepsi napad bude udelt to v php, nez se tady s tim mordovat dva dny, narvu to jako prvni akci do index.php a hotovo, ale stejně díky
Kajman
Profil
Php bude jistější, lépe se tam i ošetří to, když nejsou utm parametry u sebe. Jinak, ještě by se to dalo asi rozepsat do tří pravidel, to je nejbližší jejich řešení, tak by to mohlo fungovat (ale na testovaní čas nemám).
    RewriteCond %{QUERY_STRING} ^(utm_[^&]*(&utm_[^&]*)*)$
    RewriteRule ^(.*)$ /$1#%1? [R,NE,L]
 
    RewriteCond %{QUERY_STRING} ^(utm_[^&]*(&utm_[^&]*)*)&(.*?)$
    RewriteRule ^(.*)$ /$1?%3#%1 [R,NE,L]

    RewriteCond %{QUERY_STRING} ^(.*?)&(utm_[^&]*(&utm_[^&]*)*)(.*?)$
    RewriteRule ^(.*)$ /$1?%1%4#%2 [R,NE,L]

Edit: nebo před $1 dát kompletní http adresu webu.
matak
Profil
no uz to prepisuju do php ale teď zasnu jak zjistit fragment z url snad to pujde v php, jak by si zapsal ten preg_replace? pro to utm v php?
HosipLan
Profil
Já bych to udělal pomocí PHP, mod_rewrite je voodoo - http://filip-prochazka.com/blog/nette-framework-kanonizace-utm-parametru

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: