Autor | Zpráva | ||
---|---|---|---|
Jamaz Profil |
#1 · Zasláno: 27. 11. 2005, 06:23:28
Dobrý den,
prosím o radu ohledně mod_rewrite logu. Začínám pracovat s mod_rewrite. Vytvořil jsem první pravidla do httpd.conf a zapl rewritelog. Googloval jsem, ale nenašel jsem jaký je formát rewritelog-u. Zajímalo by mě: a) jaký je formát rewritelog b) co znamenají následující hlášky a c) jestli je ideální/nezbytné, že se v logu zobrazují záznamy: "pass through" "trying to replace prefix" "internal redirect with" "escaping ... for redirect" --- Výtažek z httpd.conf: --- RewriteLog logs/mod_rewrite.log RewriteLogLevel 9 <Directory "D:/www/evo2"> # Zapnutí mod_rewrite # (je třeba v jiné části odkomentovat "LoadModule rewrite_module modules/mod_rewrite.so" RewriteEngine On # Určení základu přepsaných URI RewriteBase /evo2 #Urychleni prochazeni pravidel - vyskoceni co nejdriv to jde # pokud je k dispocici primo soubor bez prepisovani, tak ho vykonej a neprepisuj nic RewriteCond %{REQUEST_FILENAME} -f RewriteRule .* - [L] #Oprava/doplnění URI o chybějící ukončovací lomítka: # Pro zde konfigurovaný <Directory ...> RewriteRule ^D:/www/evo2$ /evo2/ [R=301,QSA,L] # Pro ostatní adresáře RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^(.+[^/])$ $1/ [R=301,QSA,L] #Sjednocení URI tak, aby vždy končily lomítkem (z důvodu SEO optimalizace, neduplicitního obsahu) RewriteRule ^(.+[^/])$ $1/ [R=301,QSA,L] # Vlastní požadované přeložení adres RewriteRule ^([^/]+)/([^/]+)/([^/]+)/$ index.php?parametr1=$1¶metr2=$2¶metr3=$3 [L,QSA] RewriteRule ^([^/]+)/([^/]+)/$ index.php?parametr1=$1¶metr2=$2 [L,QSA] RewriteRule ^([^/]+)/$ index.php?parametr1=$1 [L,QSA] </Directory> --- Výtažek z mod_rewrite.log --- 127.0.0.1 - - [27/Nov/2005:06:08:09 +0100] [localhost/sid#2cbde8][rid#10e1cc8/initial] (3) [per-dir D:/www/evo2/] strip per-dir prefix: D:/www/evo2/subdir -> subdir 127.0.0.1 - - [27/Nov/2005:06:08:09 +0100] [localhost/sid#2cbde8][rid#10e1cc8/initial] (3) [per-dir D:/www/evo2/] applying pattern '.*' to uri 'subdir' 127.0.0.1 - - [27/Nov/2005:06:08:09 +0100] [localhost/sid#2cbde8][rid#10e1cc8/initial] (4) RewriteCond: input='D:/www/evo2/subdir' pattern='-f' => not-matched 127.0.0.1 - - [27/Nov/2005:06:08:09 +0100] [localhost/sid#2cbde8][rid#10e1cc8/initial] (3) [per-dir D:/www/evo2/] strip per-dir prefix: D:/www/evo2/subdir -> subdir 127.0.0.1 - - [27/Nov/2005:06:08:09 +0100] [localhost/sid#2cbde8][rid#10e1cc8/initial] (3) [per-dir D:/www/evo2/] applying pattern '^D:/www/evo2$' to uri 'subdir' 127.0.0.1 - - [27/Nov/2005:06:08:09 +0100] [localhost/sid#2cbde8][rid#10e1cc8/initial] (3) [per-dir D:/www/evo2/] strip per-dir prefix: D:/www/evo2/subdir -> subdir 127.0.0.1 - - [27/Nov/2005:06:08:09 +0100] [localhost/sid#2cbde8][rid#10e1cc8/initial] (3) [per-dir D:/www/evo2/] applying pattern '^(.+[^/])$' to uri 'subdir' 127.0.0.1 - - [27/Nov/2005:06:08:09 +0100] [localhost/sid#2cbde8][rid#10e1cc8/initial] (4) RewriteCond: input='D:/www/evo2/subdir' pattern='-d' => matched 127.0.0.1 - - [27/Nov/2005:06:08:09 +0100] [localhost/sid#2cbde8][rid#10e1cc8/initial] (2) [per-dir D:/www/evo2/] rewrite subdir -> subdir/ 127.0.0.1 - - [27/Nov/2005:06:08:09 +0100] [localhost/sid#2cbde8][rid#10e1cc8/initial] (3) [per-dir D:/www/evo2/] add per-dir prefix: subdir/ -> D:/www/evo2/subdir/ 127.0.0.1 - - [27/Nov/2005:06:08:09 +0100] [localhost/sid#2cbde8][rid#10e1cc8/initial] (2) [per-dir D:/www/evo2/] explicitly forcing redirect with http://localhost/D:/www/evo2/subdir/ 127.0.0.1 - - [27/Nov/2005:06:08:09 +0100] [localhost/sid#2cbde8][rid#10e1cc8/initial] (2) [per-dir D:/www/evo2/] trying to replace prefix D:/www/evo2/ with /evo2 127.0.0.1 - - [27/Nov/2005:06:08:09 +0100] [localhost/sid#2cbde8][rid#10e1cc8/initial] (5) strip matching prefix: D:/www/evo2/subdir/ -> subdir/ 127.0.0.1 - - [27/Nov/2005:06:08:09 +0100] [localhost/sid#2cbde8][rid#10e1cc8/initial] (4) add subst prefix: subdir/ -> evo2/subdir/ 127.0.0.1 - - [27/Nov/2005:06:08:09 +0100] [localhost/sid#2cbde8][rid#10e1cc8/initial] (1) [per-dir D:/www/evo2/] escaping http://localhost/evo2/subdir/ for redirect 127.0.0.1 - - [27/Nov/2005:06:08:09 +0100] [localhost/sid#2cbde8][rid#10e1cc8/initial] (1) [per-dir D:/www/evo2/] redirect to http://localhost/evo2/subdir/? [REDIRECT/301] 127.0.0.1 - - [27/Nov/2005:06:10:32 +0100] [localhost/sid#2cbde8][rid#10d8d80/initial] (3) [per-dir D:/www/evo2/] strip per-dir prefix: D:/www/evo2/subdir/ -> subdir/ 127.0.0.1 - - [27/Nov/2005:06:10:32 +0100] [localhost/sid#2cbde8][rid#10d8d80/initial] (3) [per-dir D:/www/evo2/] applying pattern '.*' to uri 'subdir/' 127.0.0.1 - - [27/Nov/2005:06:10:32 +0100] [localhost/sid#2cbde8][rid#10d8d80/initial] (4) RewriteCond: input='D:/www/evo2/subdir/' pattern='-f' => not-matched 127.0.0.1 - - [27/Nov/2005:06:10:32 +0100] [localhost/sid#2cbde8][rid#10d8d80/initial] (3) [per-dir D:/www/evo2/] strip per-dir prefix: D:/www/evo2/subdir/ -> subdir/ 127.0.0.1 - - [27/Nov/2005:06:10:32 +0100] [localhost/sid#2cbde8][rid#10d8d80/initial] (3) [per-dir D:/www/evo2/] applying pattern '^D:/www/evo2$' to uri 'subdir/' 127.0.0.1 - - [27/Nov/2005:06:10:32 +0100] [localhost/sid#2cbde8][rid#10d8d80/initial] (3) [per-dir D:/www/evo2/] strip per-dir prefix: D:/www/evo2/subdir/ -> subdir/ 127.0.0.1 - - [27/Nov/2005:06:10:32 +0100] [localhost/sid#2cbde8][rid#10d8d80/initial] (3) [per-dir D:/www/evo2/] applying pattern '^(.+[^/])$' to uri 'subdir/' 127.0.0.1 - - [27/Nov/2005:06:10:32 +0100] [localhost/sid#2cbde8][rid#10d8d80/initial] (3) [per-dir D:/www/evo2/] strip per-dir prefix: D:/www/evo2/subdir/ -> subdir/ 127.0.0.1 - - [27/Nov/2005:06:10:32 +0100] [localhost/sid#2cbde8][rid#10d8d80/initial] (3) [per-dir D:/www/evo2/] applying pattern '^(.+[^/])$' to uri 'subdir/' 127.0.0.1 - - [27/Nov/2005:06:10:32 +0100] [localhost/sid#2cbde8][rid#10d8d80/initial] (3) [per-dir D:/www/evo2/] strip per-dir prefix: D:/www/evo2/subdir/ -> subdir/ 127.0.0.1 - - [27/Nov/2005:06:10:32 +0100] [localhost/sid#2cbde8][rid#10d8d80/initial] (3) [per-dir D:/www/evo2/] applying pattern '^([^/]+)/([^/]+)/([^/]+)/$' to uri 'subdir/' 127.0.0.1 - - [27/Nov/2005:06:10:32 +0100] [localhost/sid#2cbde8][rid#10d8d80/initial] (3) [per-dir D:/www/evo2/] strip per-dir prefix: D:/www/evo2/subdir/ -> subdir/ 127.0.0.1 - - [27/Nov/2005:06:10:32 +0100] [localhost/sid#2cbde8][rid#10d8d80/initial] (3) [per-dir D:/www/evo2/] applying pattern '^([^/]+)/([^/]+)/$' to uri 'subdir/' 127.0.0.1 - - [27/Nov/2005:06:10:32 +0100] [localhost/sid#2cbde8][rid#10d8d80/initial] (3) [per-dir D:/www/evo2/] strip per-dir prefix: D:/www/evo2/subdir/ -> subdir/ 127.0.0.1 - - [27/Nov/2005:06:10:32 +0100] [localhost/sid#2cbde8][rid#10d8d80/initial] (3) [per-dir D:/www/evo2/] applying pattern '^([^/]+)/$' to uri 'subdir/' 127.0.0.1 - - [27/Nov/2005:06:10:32 +0100] [localhost/sid#2cbde8][rid#10d8d80/initial] (2) [per-dir D:/www/evo2/] rewrite subdir/ -> index.php?parametr1=subdir 127.0.0.1 - - [27/Nov/2005:06:10:32 +0100] [localhost/sid#2cbde8][rid#10d8d80/initial] (3) split uri=index.php?parametr1=subdir -> uri=index.php, args=parametr1=subdir 127.0.0.1 - - [27/Nov/2005:06:10:32 +0100] [localhost/sid#2cbde8][rid#10d8d80/initial] (3) [per-dir D:/www/evo2/] add per-dir prefix: index.php -> D:/www/evo2/index.php 127.0.0.1 - - [27/Nov/2005:06:10:32 +0100] [localhost/sid#2cbde8][rid#10d8d80/initial] (2) [per-dir D:/www/evo2/] trying to replace prefix D:/www/evo2/ with /evo2 127.0.0.1 - - [27/Nov/2005:06:10:32 +0100] [localhost/sid#2cbde8][rid#10d8d80/initial] (5) strip matching prefix: D:/www/evo2/index.php -> index.php 127.0.0.1 - - [27/Nov/2005:06:10:32 +0100] [localhost/sid#2cbde8][rid#10d8d80/initial] (4) add subst prefix: index.php -> /evo2/index.php 127.0.0.1 - - [27/Nov/2005:06:10:32 +0100] [localhost/sid#2cbde8][rid#10d8d80/initial] (1) [per-dir D:/www/evo2/] internal redirect with /evo2/index.php [INTERNAL REDIRECT] 127.0.0.1 - - [27/Nov/2005:06:10:32 +0100] [localhost/sid#2cbde8][rid#10daa78/initial/redir#1] (3) [per-dir D:/www/evo2/] strip per-dir prefix: D:/www/evo2/index.php -> index.php 127.0.0.1 - - [27/Nov/2005:06:10:32 +0100] [localhost/sid#2cbde8][rid#10daa78/initial/redir#1] (3) [per-dir D:/www/evo2/] applying pattern '.*' to uri 'index.php' 127.0.0.1 - - [27/Nov/2005:06:10:32 +0100] [localhost/sid#2cbde8][rid#10daa78/initial/redir#1] (4) RewriteCond: input='D:/www/evo2/index.php' pattern='-f' => matched 127.0.0.1 - - [27/Nov/2005:06:10:32 +0100] [localhost/sid#2cbde8][rid#10daa78/initial/redir#1] (1) [per-dir D:/www/evo2/] pass through D:/www/evo2/index.php --- END --- Budu vděčný za jakoukoliv radu, jak zápis pro rewrite_mod optimalizovat. Poradíte prosím někdo? Jamaz |
||
Kajman_ Profil * |
#2 · Zasláno: 27. 11. 2005, 15:30:40
Já se prostě snažil, aby těch řádku v logu bylo co nejméně - tedy aby apache musel procházet co nejméně pravidel a podmínek. Takže s překladem nepomůžu :-(
|
||
Jamaz Profil |
#3 · Zasláno: 27. 11. 2005, 16:29:16
Děkuju za tuhle větu. Snažit se tedy o co nejméně podmínek...
Pokud napíšu do httpd.conf všechny podmínky ideálně a nastavím (v ostrém provozu) RewriteLogLevel 1, tak by měl RewriteLog prázdný? Aneb je rewritelog obdoba access.log nebo error.log? |
||
Yuhů Profil |
#4 · Zasláno: 27. 11. 2005, 16:40:35
já hlavně jaksi netuším, k čemu je rewrite log dobrý. Má cenu to vůbec řešit?
|
||
Jamaz Profil |
#5 · Zasláno: 27. 11. 2005, 16:58:30
Myslel jsem, že je dobrý k optimalizaci rewrite pravidel. Vnímal jsem ho jako error.log do kterého se zaznamenávají chyby a upozornění různého stupně závažnosti, tak jsem se snažil zbavit toho:
"pass through" "trying to replace prefix" "internal redirect with" "escaping ... for redirect". Měl jsem představu, že v ostrém provozu nastavím RewriteLogLevel na úroveň zajišťující, že se zobrazí jen chyby, které má smysl řešit. Myslel jsem, že je to úroveň 1. |
||
Kajman_ Profil * |
#6 · Zasláno: 28. 11. 2005, 10:42:05
Rewritelog není obdoba error logu. Spíš je dobré zkontrolovat, zda se tam něco např. necyklí ale chová se tak, jak má (třeba, že desektrát nepřepisuje index.php na index.php v jednom požadavku nebo podobné věci.). Myslím, že na ostrém serveru nemá význam a manuál doporučuje jeho vypunutí.
Ty zmíněné fráze nejsou chyby, prostě jen informace o tom, co modul zrovna dělá. Pokud je tam chyba, vrací apache chybu 500, takže to člověk rychle pozná. |
||
Jamaz Profil |
#7 · Zasláno: 28. 11. 2005, 14:09:42
Kajmane děkuju za informaci, že rewritelog není obdoba error.log
BTW: kde je manuál, který doporučuje jeho vypnutí? Nic takového jsem nenašel ani v httpd.apache.org/docs/1.3/mod/mod_rewrite.html ani v httpd.apache.org/docs/2.0/mod/mod_rewrite.html (oba uvádějí "Use the rewriting logfile at a Level greater than 2 only for debugging!") Je nějaký manuál lepší/spolehlivější? |
||
Kajman_ Profil * |
#8 · Zasláno: 28. 11. 2005, 23:30:56
...a manuál doporučuje jeho vypunutí.
Tak to jsem se upsal. Nemám dobrou paměť. Jinak nic lepšího než zmíněný manuál neznám. Ještě existuje příručka s některými příklady http://httpd.apache.org/docs/2.0/misc/rewriteguide.html a pár jednoduchých příkladů a postřehů je i na jpw ;-) http://www.jakpsatweb.cz/server/mod_rewrite/mod-rewrite-priklady.html |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0