Portál AbcLinuxu, 9. června 2025 02:03


Dotaz: Help s Mod_Rewrite

9.12.2005 13:34 holy | skóre: 10
Help s Mod_Rewrite
Přečteno: 390×
Odpovědět | Admin
Zdravim, chtel jsem se zeptat zda je nejak mozne pomoci rewrite modu urcit apache jakou stranku ma nacist pokud navstevnik neprijde z dane domeny.

Neco jako pokud HTTP_HOST <> HTTP_REFERER, tak jdi sem.

Diky za pomoc
Nástroje: Začni sledovat (4) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

9.12.2005 14:00 Marián André | skóre: 10 | blog: Qblog
Rozbalit Rozbalit vše Re: Help s Mod_Rewrite
Odpovědět | | Sbalit | Link | Blokovat | Admin
Stačí čítať trochu dokumentácie. Toto je pomocou REMOTE_HOST riešené priamo v URL Rewriting Guide.
O mne.
9.12.2005 15:14 holy | skóre: 10
Rozbalit Rozbalit vše Re: Help s Mod_Rewrite
jestli myslite
RewriteEngine on
RewriteCond   %{REMOTE_HOST}  !^.+\.ourdomain\.com$
RewriteRule   ^(/~.+)         http://www.somewhere.com/$1 [R,L]
tak to jsem zkousel a vubec to nefunguje, mozna delam neco spatne
9.12.2005 15:53 Pavel 'lingeek' Szalbot | skóre: 54 | Třinec
Rozbalit Rozbalit vše Re: Help s Mod_Rewrite
Můžeš popsat, jak to nefunguje? Tj. například vypsat kus rewrite logu...
Math, as Barbie says, is hard.
9.12.2005 17:04 Marián André | skóre: 10 | blog: Qblog
Rozbalit Rozbalit vše Re: Help s Mod_Rewrite
Pridávam sa. Konfiguračné voľby RewriteLog a RewriteLogLevel spolu s výpisom rewrite logu veľmi pomôžu.
10.12.2005 19:49 holy | skóre: 10
Rozbalit Rozbalit vše Re: Help s Mod_Rewrite
fungovat to nemuze protoze me se jedna o lidi kteri prichazeji na webserver. REMOTE_HOST je jmeno danyho pocitace, ale ne odkud prisel.

Nicmene jsem dosel dal, ale i to nefunguje jak sem si predstavoval:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^(.*)\.domena\.tld/(.*)$
RewriteRule ^$ /index2.php [R]
tohle mi presmeruje na index2.php, ale jen v pripade pokud nic za domenou neni napr kdyz link vypada:

http://neco.domena.tld

ale nefunguje to jiz kdyz link je napr:

http://neco.domena.tld/index.php v tomto pripade to nic neprepise a normalne zobrazi index.php

mozna tam mam nejakou chybu ale nemuzu proste najit jakou a kde.
11.12.2005 01:49 ytre
Rozbalit Rozbalit vše Re: Help s Mod_Rewrite
^$ nikdy nic nematchne z definice HTTP protokolu.

GET musi mit minimalne jeden znak jako argument URI a potom po mezere verzi protokolu.

Takze jestli smerovat uplne vsechny, tak nejrychleji to asi pujde po zmene na:

RewriteRule ^ /index2.php [R=302,L]

jeste bych dal do google http return codes a nasel si cislo presmerovani co se snasi s proxy cache. jak se maji cache chovat je v http standardu, takze mozna uplne nejlepsi by bylo hledat rovnou v nem. volil bych bud temporary redirect nebo see other. ted nevim co je lepsi.
11.12.2005 01:50 ytre
Rozbalit Rozbalit vše Re: Help s Mod_Rewrite
^$ nikdy nic nematchne z definice HTTP protokolu.

GET musi mit minimalne jeden znak jako argument URI a potom po mezere verzi protokolu.

Takze jestli smerovat uplne vsechny, tak nejrychleji to asi pujde po zmene na:

RewriteRule ^ /index2.php [R=302,L]

jeste bych dal do google http return codes a nasel si cislo presmerovani co se snasi s proxy cache. jak se maji cache chovat je v http standardu, takze mozna uplne nejlepsi by bylo hledat rovnou v nem. volil bych bud temporary redirect nebo see other. ted nevim co je lepsi. myslim ze pro cache. jo a zkusit s ruznymi prohlizeci, jak se to chova na POST a GET formech, jestli vam jde o to aby fungovaly...
11.12.2005 15:01 holy | skóre: 10
Rozbalit Rozbalit vše Re: Help s Mod_Rewrite
bojuzel, ale ani tohle nefunguje, jeste k tomu se ta stranka nacita silene popmalu
16.12.2005 20:12 ytre
Rozbalit Rozbalit vše Re: Help s Mod_Rewrite
jasne napsal jsem blbost. to se chytne na kazdym pozadavku, takze i na tom /index2... fungovat to bude leda, kdyz to pujde do jinyho hostu v jehoz kontextu to pravidlo neplati nebo do externiho hostu, kterej se nezacykli...
16.12.2005 20:15 ytre
Rozbalit Rozbalit vše Re: Help s Mod_Rewrite
podstatny je u jednoho hostu protlacit to skrz pravidla a nepresmerovavat externe, takze misto [R=302,L] pouzit [L,PT] nebo [L] zalezi jeste od toho jak chcete aby to videl treba mod_jk nebo mod_proxy apod.
11.12.2005 01:43 ytre
Rozbalit Rozbalit vše Re: Help s Mod_Rewrite
Referer... a host... asi vzniklo nedorozumeni.

http://httpd.apache.org/docs/2.0/misc/rewriteguide.html#access
12.12.2005 17:43 holy | skóre: 10
Rozbalit Rozbalit vše Re: Help s Mod_Rewrite
Odpovědět | | Sbalit | Link | Blokovat | Admin
opravdu nikdo nevi? proste nevim proc to jde jenom kdyz je za domenou prazdno.
Marián Oravec avatar 12.12.2005 18:12 Marián Oravec | skóre: 22 | Nitra
Rozbalit Rozbalit vše Re: Help s Mod_Rewrite
Ale čo by nevedel...
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^(.*)\.domena\.tld
RewriteRule /(.*) /index2.php [R,L]
Mám rád elektro, ale vypočujem si aj iné...
12.12.2005 18:34 holy | skóre: 10
Rozbalit Rozbalit vše Re: Help s Mod_Rewrite
diky, ale tohle uz vubec nefunguje.
Marián Oravec avatar 12.12.2005 19:01 Marián Oravec | skóre: 22 | Nitra
Rozbalit Rozbalit vše Re: Help s Mod_Rewrite
Skúste ešte toto: "odstániť" doménu 3. rádu a na koniec pridať aby to matchlo všetky cesty (a tie zátvorky tam byť nemali):
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^.*domena\.tld\/.*
RewriteRule .* /index2.php [R,L]
Snáď dobre, ale keď nie, tak potom pozrieť logy...
Mám rád elektro, ale vypočujem si aj iné...
12.12.2005 19:22 holy | skóre: 10
Rozbalit Rozbalit vše Re: Help s Mod_Rewrite
bohuzel ani tohle nefunguje, horsi je, ze ani do logu to nic nevypisuje
12.12.2005 19:27 holy | skóre: 10
Rozbalit Rozbalit vše Re: Help s Mod_Rewrite
pripada mi to jako by se to zacyklilo
Marián Oravec avatar 12.12.2005 19:39 Marián Oravec | skóre: 22 | Nitra
Rozbalit Rozbalit vše Re: Help s Mod_Rewrite
Áno presne tak, ešte treba ošetriť či referer nie je Vaša doména/stránka a tiež či referer nie je prázdny string (ak je v browseri vypnutý). Alebo nič neriešiť a vyhodiť z hranatých zátvoriek na konci "R"-ko. Ale to už asi nebude to čo chcete...
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^.*vasadomena\.tld\/.*
RewriteCond %{HTTP_REFERER} !^.*domena\.tld\/.*
RewriteRule .* /index2.php [R,L]
Mám rád elektro, ale vypočujem si aj iné...
13.12.2005 08:11 holy | skóre: 10
Rozbalit Rozbalit vše Re: Help s Mod_Rewrite
nefunguje to, 1. nevim co je vasadomena? kdyz to porovnavam s jednou domenou a 2. to tuhne, prosim neklikejte na "Otazka byla vyresena" kdyz tomu tak vubec neni.
13.12.2005 09:10 Marián André | skóre: 10 | blog: Qblog
Rozbalit Rozbalit vše Re: Help s Mod_Rewrite
Mám taký dojem, že sa začíname zamotávať. Asi by bolo vhodné presnejšie špecifikovať otázku - teda, kedy presne a za akých okolností je potrebné robiť prepis...

HTTP_REFERER je serverová premenná, ktorá sa napĺňa hodnotou z HTTP protokolu, zatiaľčo REMOTE_HOST sa napĺňa pri vytvorení spojenia...
15.12.2005 11:05 holy | skóre: 10
Rozbalit Rozbalit vše Re: Help s Mod_Rewrite
myslim ze to musi jit pres HTTP_REFERER. mozna jsem spatne vysvetlil muj problem, mam domenu.tld

1. kdyz na tu domenu pudu napr z google kde bude zaindexovany domena.tld/neco.php tak potrebuju, aby to souplo na index2.php

2. pokud ten odkaz je na te domene napr v domena.tld/nejakyadresar tak, aby to slo na neco.php

kdyz jsem zkousel REMOTE_HOST tak me to vzdycky presmerovalo na index2.php at jsem prisel odkudkoliv, samozrejme jsem to mohl mit spatne.
15.12.2005 11:13 podlesh | skóre: 38 | Freiburg im Breisgau
Rozbalit Rozbalit vše Re: Help s Mod_Rewrite
REMOTE_HOST je adresa klienta (tedy stroje kde běží onen router), v tomto případě asi opravdu je nutné použít HTTP_REFERER (pokud termín "pudu z google" znamená že uživatel klikne na odkaz na google.

Při používání přesměrování přes 302 MOVED_TEMPORARILY a Location: (to je to, co dělá flag R; možná by bylo lepší použít 304?) je nutné pamatovat, že browser pošle nový požadavek (na tu novou adresu) a na ten se znovu aplikují přepisovací pravidla. Je tedy nutné nepřepisovat ty cílové adresy, jinak se to zacyklí!
15.12.2005 14:04 holy | skóre: 10
Rozbalit Rozbalit vše Re: Help s Mod_Rewrite
bohuzel ani tohle nefunguje pokud je ten odkaz domana.tld/neco.php porad to leze na domana.tld/neco.php
15.12.2005 11:07 holy | skóre: 10
Rozbalit Rozbalit vše Re: Help s Mod_Rewrite
mozna to nemusi jit ani rewritem proste potrebuju zastit, aby index2.php byl vstupni soubor na domene.
16.12.2005 19:59 holy | skóre: 10
Rozbalit Rozbalit vše Re: Help s Mod_Rewrite
Odpovědět | | Sbalit | Link | Blokovat | Admin
hm koukam, ze toto je neresitelny problem. vyzkousel jsem kdeco a nic.
21.12.2005 09:44 holy | skóre: 10
Rozbalit Rozbalit vše Re: Help s Mod_Rewrite
tak fakt jsem hotovej nic nejde, jeste me napada zda bych tam nemoh pomoci RewriteMap aplikovat nejakej Perl script. Je to jen napad, nemam s tim zadny zkusenosti.
21.12.2005 10:25 podlesh | skóre: 38 | Freiburg im Breisgau
Rozbalit Rozbalit vše Re: Help s Mod_Rewrite
hm koukam, ze toto je neresitelny problem. vyzkousel jsem kdeco a nic.
Komu není rady, tomu není pomoci. Vše co mohlo být řečeno již řečeno bylo.

Pokud to nefunguje, je potřeba pořádně otestovat a napsat sem, co konkrétně nefunguje a co to dělá (oproti tomu, co by to dělat mělo). To především znamená nepoužívat k testování browser, ale pěkně něco co umožní vytvořit a vypsat kompletní request/response (například curl).

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.