Starší komentáře ke článku: Mod_rewrite pro hezká URL - RewriteCond
Zpět na článek | Úvodní stránka Interval.cz
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 29.7.2005 13:21:20
no priklady jsou to sice pekne, ale napada me, kdyz napr. pomoci firewallu blokuji trasovani pohybu, tak HTTP_REFFER mi prohlizec neodesle...tim padem neuvidim zminovane obrazky ani tam, kde byy mely byt videt
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 29.7.2005 14:24:22
No to pak mate smulu :-)
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 29.7.2005 15:08:10
pak budete mit zajiste ulozeno cookie ziskane pri prohlizeni webu - jinak, jak uz bylo psano, mate smulu.
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 29.7.2005 18:38:55
a není to náhodou naopak, tedy že když se tam referrer nepředá, tak že je naopak uvidíte odevšad? Pak se to bude imho chovat jako přímý zápis do prohlížeče a tedy se podle prvního pravidla stránka zobrazí
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 30.7.2005 10:33:58
je to "pokud neni prazdne" a zaroven "neni example" a zaroven "neni www.example", tak se nezobrazi. asi by tam melo byt or :) jinak tem co si ho vypnou, taktez nezobrazit, pekne at se na obrazky koukaji z hlavni stranky...
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 4.8.2005 13:29:09
myslim ze je to u tohoto jedno - pokud tam neni nic je to and a pokud mas vic jak 2 podminky musi tam byt
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 4.8.2005 18:46:04
a naco je dobre blokovat referer? aky to ma vyznam? a este by ma zaujimalo ako to firewall dokaze ked operuje na sietovej vrstve???
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 8.8.2005 15:36:53
No ja osobne si myslim ze to dokaze kvoli tomu, ze hlavicku referer odosiela serveru prehliadac. Povedzme ze server na ktorom sa prave uzivatel nachadza odosle uzivatelovi HTTP_REFERER a tento odosle na dalsi server, inac si to predstavit neviem ze by server posielal hlavicku na iny server, to predsa proste nejde. Je tam vztah len server-uzivatel. I ked v niektorych pripadoch moze byt server aj zaroven klientom, ale predsa je len klient. To v tom pripade ze mate na svojom PC nainstalovany aj nejaky server. Ale na prehliadanie stranok aj tak stale pouzivate prehliadac a nie server, server vlastne k tomu ani urceny nie je, ale na odosielanie toho co si klient ziadal.
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 8.8.2005 19:02:24
[i]Povedzme ze server na ktorom sa prave uzivatel nachadza odosle uzivatelovi HTTP_REFERER a tento odosle na dalsi server[/i] no takto to nie je - ale to je jedno - mne ide o to, ze kvoli comu je dobre blokovat referer?
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 8.8.2005 19:06:17
jen pokud nechcete, aby vam nekdo z cizich serveru odkazoval na obrazky (v tomto pripade :)). Nekteri lide to nemaji v lasce, jednak tim kradou traffic, a jednak se tak nemuzou lehce obrazky sirit treba bez nejakych doprovodnych textu apod...
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 8.8.2005 19:21:55
"no takto to nie je - ale to je jedno - mne ide o to, ze kvoli comu je dobre blokovat referer?" Z duvodu ochrany soukromi - od nevinnych informaci typu na vase stranky jsem prisel z Googlu a hledal jsem to a to, az po vyzrazeni session (pokud se session id predava v URL a na stranky je mozne treba pres diskuzni forum strcit odkaz na cizi web, kam pak v hlavicce referer odejde URL i se session id). To druhe musi osetrit tvurce stranek. Leo
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 8.8.2005 15:52:30
"a este by ma zaujimalo ako to firewall dokaze ked operuje na sietovej vrstve???" nevim cemu rikate sitova vrstva, ale rada firewallu meni obsah ktery pres ne preteka - od http hlavicek po html kod. Leo
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 8.8.2005 18:59:18
...ale to uz nie je firewall - to je potom "communication filter", pracujuci az na aplikacnej vrstve... ano viem o co ide - to som len rypal :-)
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 29.7.2005 19:09:19
Jeste bych do toho blokovani refereru povolil Google, protoze ten muze byt dobrym zdrojem navstev.
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 1.8.2005 13:20:35
Kdepak, v tom žádný problém není. Výše uvedený příklad je korektní. Náhledy si dělá google vlastní a velké zobrazuje i s celou stránkou, na které je, takže bude mít referer správný (naše stránka bude mít referer z googlu, ale obrázky na ní budou mít referer už naši stránku). Snad jen by v tom přepisovacím pravidle, mohl být použit příznak NC (vypíná rozlišování velkých a malých písmen), aby se nemusely koncovky vypisovat malými i velkými písmeny.
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 1.8.2005 16:28:52
Zdravim. Pokusal som sa mod-rewrite rozchodit. Modul funguje bezchybne, ale zlikvidovali sa mi vsetky obrazky na stranke + formatovanie externym css-kom. Skusal som nahradit relativne cesty absolutnymi, ale bezvysledne. Zaujimave, ze sa to rovnako sprava na localhoste aj na hostingu. Neviete mi niekto poradit, v com by mohol byt problem? Dakujem
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 1.8.2005 16:52:06
Typický problém v případě, že je dělána jakoby adresářová struktura. Ještě jednou zkontroluj adresy k obrázkům a ke stylům. Při použití správných absolutních adres by to mělo být ok.
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 2.8.2005 9:03:27
A kdyz uz tak zvesela posilate ruzny obsah pro ruzne HTTP hlavicky v pozadavku prohlizece, posilate taky v odpovedi hlavicku Vary? Nebo na kesovani po ceste kaslete? Leo
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 4.8.2005 15:32:16
Jde otestovat zamezení linkování obrázků z cizích serverů i na loaclu na mém pc??? Prosím poraďte. Nechci to zkoušet rovnou na serveru, jelikož s tím nemám ještě žádnou zkušenost. Díky za rady
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 4.8.2005 15:33:09
Omlouvám se mělo to být na localu.
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 8.8.2005 17:08:59
docela jednodusse - nazev serveru se jen zmeni na localhost. Samozrejme musite mit naistalovany mod_rewrite - viz prvni dil.
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 4.8.2005 17:07:21
Ja som raz skusal zakazat odkazy na moje obrazky z inych webov bez mod_rewrite takto: SetEnvIfNoCase Referer "^http://moj_server1/" local_ref=1 SetEnvIfNoCase Referer "^http://moj_server2/" local_ref=1 SetEnvIfNoCase Referer "^http://moj_server3/" local_ref=1 SetEnvIf Referer "^$" local_ref=1 <FilesMatch ".(gif|jpg|png|swf)"> Order Allow,Deny Allow from env=local_ref </FilesMatch> Obrazky sa zobrazili len tym, co posielali ako Referer niektory z mojich webov alebo nemalli nastaveny ziadny Referer (vela ludi, vratane mna si vo FF vypina posielanie Referer). Akoze ochrana nic moc, ale aspon niektorych, co nevedia o co ide, to odradi :-)
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 5.8.2005 9:15:29
Díky za užitečný článek. Je pravda, že jednotný tvar URL je důležitý pro SEO. Je možné nastavit Mod_rewrite tak, aby se všechny adresy bez www přesměrovaly na verzi s www mimo vybraných adresářů (aby fungovala např. adresa http://admin.example.com ale už ne adresa http://example.com). Díky za odpověď.
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 8.8.2005 17:11:34
staci pouzit RewriteCond... RewriteCond %{HTTP_HOST} !^admin.example.com toto by mohlo fungovat :) (netestovano)
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 9.8.2005 9:19:39
Zkušel jsem to takto, ale bohužel mi to nefunguje :-( RewriteEngine On RewriteCond %{HTTP_HOST} ^example\.com RewriteCond %{HTTP_HOST} !^admin.example.com RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,QSA] RewriteCond %{HTTP_HOST} ^www\.example\.com RewriteRule ^(.*)\.html$ %{DOCUMENT_ROOT}/index.php?stranka=$1 [L,QSA]
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 9.8.2005 9:38:26
jojo zapomnel jsem escapovat :) zkuste tam jeste pridat [OR], mrknout se do logu, popsat co to dela ;)
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 12.8.2005 2:40:47
Zajímalo by mě, zda lze automatické přesměrovávání z www.example.cz na adresu bez www (viz. www.interval.cz) provést i bez mod_rewrite (jednodušeji), např. mod_alias či jinak (příklad:)? Díky.
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 12.8.2005 9:58:38
Třeba si udělat virtualhost www.example.com a u něho dát RedirectMatch (.*)$ http://example.com$1
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 15.8.2005 17:25:16
zdravim, spravil som si jeden vetsi test pomocou mod_rewrite modulu na jednej z mojich stranok. dovolim si tvrdit ze nejake male skusenosti s mod_rewrite uz mam, vysledok bol zaujimavy, 80% navstevnikov na stranku pochadzalo z google, konkretne denne priemer cca 5-7tis unikatnych navstevnikov... problem nastal, ked mi zacal padat server, vypal som mod_rewrite(zacal som pouzivat povodne url) a vsetko uz v bolo v pohode. moja otazka speje teda na HW zataz serverov, je mozne ze mod_rewrite ako modul extremne zatazuje server? v top bol na poprednych prieckach apache a nie mysql, ako to byva zvykom... dakujem za reakcie a moznosti optimalizacie
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 16.8.2005 13:55:25
Zkontrolujte si, zda nemáte zapnutý v konfiguraci log od rewrite. Vypíná se pomocí (nelze v .htaccess) RewriteLogLevel 0 nebo tuším i zakomentováním RewriteLog. A obecně se uvádí, že mod rewrite dokáže extremě zatížit server. Pokud je tam hodně přepisovaní (a třeba i dynamické přepisovací mapy), tak to bude asi tím. Možná by pomohlo zkusit optimalizovat pravidla.
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 26.10.2005 23:40:24
Ve článku uvedený postup pro přesměrování z example.com na www.example.com má jednu záludnou chybu, která se projeví při předávání speciálních znaků v URL. Například example.com?param=%2A změní na www.example.com?param=%252A, tedy v parametru param dostaneme namísto řetězce "*" řetězec "%2A". Je proto třeba explicitně escapování vypnout a to přidáním parametru NE (noescape). Tedy opravený příklad by zněl: RewriteEngine On RewriteCond %{HTTP_HOST} ^example\.com RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,QSA,NE] (možná by to bylo vhodné opravit přímo v článku, nehezky jsem se na tom vypekl ;-)
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 3.11.2005 10:13:34
Mělo by stačit i vypustit QSA (i s NE). Pokud totiž není v nové adrese query string, přidává se automaticky a problémy s escapováním nejsou. RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 5.11.2005 1:36:08
Ano, QSA je možné vypustit. 'NE' nikoliv, protože i při automatickém předání query string dochází k escapování.
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 26.4.2006 13:53:19
Cituji: ---------- RewriteCond %{HTTP_HOST} ^example\.com RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,QSA] Všimněte si, že toto pravidlo není konečné (není L), protože jsme jenom upravili adresu na "www" verzi a v dalším pravidle s ní ještě budeme pracovat. -------------------- Je třeba si uvědomit, že přesměrováním na variantu s "www" jsme pouze změnili zpracovávané URI, nikoliv proměnnou %{HTTP_HOST}, takže následující pravidlo se už neprovede. Dále díky přesměrování R=301 se "interní" pravidla stanou "externími", tedy v adresním řádku prohlížeče uvidíme 'index.php?stranka=xxx', což většinou není záměr. Proto je vhodné přesměrování udělat konečným pravidlem (příznak L). Drobnost - není třeba extra závorkovat hledaný výraz, stačí RewriteRule ^.*$ http://www.example.com/$0 Dále není třeba používat příznak [QSA], protože substituce neobsahuje ? a tudíž parametry se překlopí automaticky. Co je však nezbytně nutné, tak použít příznak [NE], vysvětlení najdete v předchozím komentáři. Tedy nejvhodnější zápis je: RewriteCond %{HTTP_HOST} ^www\.example\.com$ RewriteRule ^.*$ http://example.com/$0 [R=301,NE,L] Další pravidla se provádějí až po redirektu. Ještě poznámka - redirektem bohužel přijdeme o fragment URI, tedy text za znakem #.
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 6.12.2007 15:52:23
Ve Vasem priklade bych neuvadel RewriteRule ^.*$ http://example.com/$0 [R=301,NE,L] ale RewriteRule ^.*$ http://example.com$0 [R=301,NE,L] tzn. bez lomitka. Dochazi pak k jeho znovuvlozeni.
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 8.10.2006 16:13:42
Prosím o radu - nie som zbehlý v regexp. Prevádzkujem stránky, ktoré majú subdomény. domena.sk subdomena1.domena.sk subdomena2.domena.sk Ako dosiahnuť, aby sa takéto URI www.domena.sk www.subdomena1.domena.sk www.subdomena2.domena.sk presmerovali na tvar uvedený vyššie? Teda aby sa www odstránilo aj zo subdomén?
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 6.2.2007 19:20:35
dobrý deň mám zápis v .htaccess RewriteRule ^(.*)\.html$ index.php?cIndex=$1 [L,QSA] neviete mi niekto prosím poradiť ako zapísať odkaz na ďaľší súbor napr. informacie.php ktporý je v tom istom adresári ako index.php ? ono mi to totiž všetko smeruje iba na index.php ďakujem
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 29.6.2007 5:35:45
Nic co by nebylo v dokumentaci od apache ...
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 29.6.2007 5:37:51
Teda, tohle presne JE v dokumentaci slovo od slova ...
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 13.2.2008 18:51:36
Pokud se nepletu, tak dokumentace není česky. A jestli si myslíš, že každej kdo to potřebuje umí anglicky tak dobře, aby to odtamtud přečet, tak je tvůj mozek totálně k hovnu.
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 23.7.2007 23:22:55
Mám dvě domény na jednom webhostingu a potřebuju aby po zadání jedné domény se přesměrovalo do určitého adresáře, tzn. po zadání www.example2.com se přesměrovalo do www.example2.com/test/ Může mi prosím někdo poradit, jak na to???? Už se s tim trápit dva dny :(( Díkyy
![Avatar](/wp-content/themes/interval/images/anonym4.gif)
Datum vložení: 24.7.2007 16:30:37
RewriteCond %{SERVER_NAME} ^www\.example2\.com RewriteCond %{REQUEST_URI} !(test) RewriteRule ^(.*)$ http://www.example2.com/test/$1 [R,L]