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

1    #H1 analytics ficura - start
2 
3    RewriteCond %{QUERY_STRING} ^(utm_.*)$
4    RewriteRule ^(.*)$ /$1#%1? [R=301,NE,L]
5 
6    RewriteCond %{QUERY_STRING} ^(.*?)&(utm_.*)$
7    RewriteRule ^(.*)$ /$1?%1#%2 [R=301,NE,L]
8 
9    #H1 analytics ficura - end
    #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

1RewriteCond %{QUERY_STRING} ^(utm_[^&]*(&utm_[^&]*)*)$
2RewriteRule ^(.*)$ /$1#%1? [R,NE,L]
3 
4RewriteCond %{QUERY_STRING} ^(.*?)&?(utm_[^&]*(&utm_[^&]*)*)(.*?)$
5RewriteRule ^(.*)$ /$1?%1%4#%2 [NE,C]
6RewriteCond %{QUERY_STRING} ^&?(.*?)$
7RewriteRule ^(.*)$ $1?%1 [R,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]
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í?
1RewriteBase /
2 
3RewriteCond %{QUERY_STRING} ^(utm_[^&]*(&utm_[^&]*)*)$
4RewriteRule ^(.*)$ $1#%1? [R,NE,L]
5 
6RewriteCond %{QUERY_STRING} ^(.*?)&?(utm_[^&]*(&utm_[^&]*)*)(.*?)$
7RewriteRule ^(.*)$ $1?%1%4#%2 [NE,C]
8RewriteCond %{QUERY_STRING} ^&?(.*?)$
9RewriteRule ^(.*)$ $1?%1 [R,NE,L]
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
1<IfModule mod_rewrite.c>
2    RewriteEngine On
3    
4    RewriteRule ^vyhledavani/$ /search/ [R=301,L]
5 
6    #H1 analytics ficura - start
7 
8    RewriteCond %{QUERY_STRING} ^(utm_.*)$
9    RewriteRule ^(.*)$ /$1#%1? [R=301,NE,L]
10 
11    RewriteCond %{QUERY_STRING} ^(.*?)&(utm_.*)$
12    RewriteRule ^(.*)$ /$1?%1#%2 [R=301,NE,L]
13 
14#    RewriteCond %{QUERY_STRING} ^(utm_[^&]*(&utm_[^&]*)*)$
15#    RewriteRule ^(.*)$ /$1#%1? [R,NE,L]
16 
17#    RewriteCond %{QUERY_STRING} ^(.*?)&?(utm_[^&]*(&utm_[^&]*)*)(.*?)$
18#    RewriteRule ^(.*)$ $1?%1%4#%2 [NE,C]
19#    RewriteCond %{QUERY_STRING} ^&?(.*?)$
20#    RewriteRule ^(.*)$ /$1?%1 [R,NE,L]
21 
22    #H1 analytics ficura - end
23 
24 
25 
26    RewriteRule ^robots.txt /robots.php [L]
27 
28    RewriteCond %{REQUEST_FILENAME} !-f
29    RewriteRule ^newsletter([^/]+)\.gif$ newsletter.php?identity=$1 [L]
30 
31    RewriteCond %{REQUEST_FILENAME} !-f
32    RewriteRule ^media/upload/(.*)\.(jpg|png|gif)$ image.php [L]
33 
34    RewriteCond %{REQUEST_FILENAME} !-f
35    RewriteCond %{REQUEST_FILENAME} !-d
36    RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]
37</IfModule>
<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.
1<IfModule mod_rewrite.c>
2    RewriteEngine On
3 
4RewriteBase /
5    
6    RewriteRule ^vyhledavani/$ /search/ [R=301,L]
7 
8    #H1 analytics ficura - start
9 
10RewriteCond %{QUERY_STRING} ^(utm_[^&]*(&utm_[^&]*)*)$
11RewriteRule ^(.*)$ $1#%1? [R,NE,L]
12 
13RewriteCond %{QUERY_STRING} ^(.*?)&?(utm_[^&]*(&utm_[^&]*)*)(.*?)$
14RewriteRule ^(.*)$ $1?%1%4#%2 [NE,C]
15RewriteCond %{QUERY_STRING} ^&?(.*?)$
16RewriteRule ^(.*)$ $1?%1 [R,NE,L]

17 
18    #H1 analytics ficura - end
19 
20 
21 
22    RewriteRule ^robots.txt /robots.php [L]
23 
24    RewriteCond %{REQUEST_FILENAME} !-f
25    RewriteRule ^newsletter([^/]+)\.gif$ newsletter.php?identity=$1 [L]
26 
27    RewriteCond %{REQUEST_FILENAME} !-f
28    RewriteRule ^media/upload/(.*)\.(jpg|png|gif)$ image.php [L]
29 
30    RewriteCond %{REQUEST_FILENAME} !-f
31    RewriteCond %{REQUEST_FILENAME} !-d
32    RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]
33</IfModule>
<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).
1    RewriteCond %{QUERY_STRING} ^(utm_[^&]*(&utm_[^&]*)*)$
2    RewriteRule ^(.*)$ /$1#%1? [R,NE,L]
3 
4    RewriteCond %{QUERY_STRING} ^(utm_[^&]*(&utm_[^&]*)*)&(.*?)$
5    RewriteRule ^(.*)$ /$1?%3#%1 [R,NE,L]
6 
7    RewriteCond %{QUERY_STRING} ^(.*?)&(utm_[^&]*(&utm_[^&]*)*)(.*?)$
8    RewriteRule ^(.*)$ /$1?%1%4#%2 [R,NE,L]
    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
Toto vlákno je staré, již dlouho do něj nikdo nepřispíval.

Informace a odkazy zde uváděné už nemusejí být aktuální. Nechcete-li řešit zde uvedenou konkrétní otázku, založte si vlastní vlákno, nepište do tohoto. Vložíte-li sem nyní příspěvek, upoutáte pozornost mnoha lidí a někteří z nich si jen kvůli vám přečtou i všechny předcházející příspěvky. Předpokládáte-li, že váš text skutečně bude hodnotný, stiskněte následující tlačítko:


Běda vám, jestli to bude blábol.

0