DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Regular expression i htaccess (http://www.devprotalk.com/forumdisplay.php?f=41)
-   -   L flag, subreqest problem (http://www.devprotalk.com/showthread.php?t=8160)

robi-bobi 03. 12. 2009. 13:22

L flag, subreqest problem
 
pozdrav

vec neko vreme citam dokumentacije i pitam google ali ne mogu da nadjem odgovor, pa rekoh da pitam ovde

.htaccess situacija:
radim redirekt sa jednog domena na drugi (preselio sam sajt)

postoje 3 uslova:
URL tipa archives* redirektati na jedan nacin
URL tipa feeds* ne redirektati
sve ostalo da ide na novi homepage (mrzi me da matchujem sve ostale slucajeve)

evo ga .htaccess
Kôd:

RewriteEngine On
RewriteBase /

#keep old RSS in place, just so that old users can find about the new site
RewriteRule ^feeds/(.*) index.php?url=/feeds/$1 [L,QSA,NS]

#redirect to new articles @ www.rbnet
RewriteRule archives/([0-9]+)- http://www.robi-bobi.net/blog/$1.html [NS,R=301,L]

#in case all else fails, redirect to www homepage
RewriteRule (.*) http://www.robi-bobi.net/ [NS,R=301,L]

problem:
za URL:
http://blog.robi-bobi.net/feeds/index.rss2
dobijam kao rezultat sledeci redirekt:
http://www.robi-bobi.net/?url=/feeds/index.rss2

po meni, posto sva pravila imaju i L i NS flag, onda bi trebalo da se samo jedno od njih ispuni za jedan request
dakle, recimo neko pravilo ima match, ono je Last u trenutnom requestu, ukoliko postoji subrequest, onda bi ovaj NS trebao da spreci match bilo kog drugog pravila.

evo i mod_rewrite loga (RewriteLogLevel 3):
Kôd:

#tail -f /var/log/apache2/rewrite.log | grep feeds


195.34.104.214 - - [03/Dec/2009:07:12:16 --0500] [blog.robi-bobi.net/sid#a256d08][rid#a4aa0b8/initial] (3) [perdir /home/robibobi/sites/blog.robi-bobi.net/] add path info postfix: /home/robibobi/sites/blog.robi-bobi.net/feeds -> /home/robibobi/sites/blog.robi-bobi.net/feeds/index.rss2
195.34.104.214 - - [03/Dec/2009:07:12:16 --0500] [blog.robi-bobi.net/sid#a256d08][rid#a4aa0b8/initial] (3) [perdir /home/robibobi/sites/blog.robi-bobi.net/] strip per-dir prefix: /home/robibobi/sites/blog.robi-bobi.net/feeds/index.rss2 -> feeds/index.rss2
195.34.104.214 - - [03/Dec/2009:07:12:16 --0500] [blog.robi-bobi.net/sid#a256d08][rid#a4aa0b8/initial] (3) [perdir /home/robibobi/sites/blog.robi-bobi.net/] applying pattern '^feeds/(.*)' to uri 'feeds/index.rss2'
195.34.104.214 - - [03/Dec/2009:07:12:16 --0500] [blog.robi-bobi.net/sid#a256d08][rid#a4aa0b8/initial] (2) [perdir /home/robibobi/sites/blog.robi-bobi.net/] rewrite 'feeds/index.rss2' -> 'index.php?url=/feeds/index.rss2'
195.34.104.214 - - [03/Dec/2009:07:12:16 --0500] [blog.robi-bobi.net/sid#a256d08][rid#a4aa0b8/initial] (3) split uri=index.php?url=/feeds/index.rss2 -> uri=index.php, args=url=/feeds/index.rss2
195.34.104.214 - - [03/Dec/2009:07:12:16 --0500] [blog.robi-bobi.net/sid#a256d08][rid#a4b5ca8/initial/redir#1] (3) [perdir /home/robibobi/sites/blog.robi-bobi.net/] applying pattern '^feeds/(.*)' to uri 'index.php'
195.34.104.214 - - [03/Dec/2009:07:12:16 --0500] [blog.robi-bobi.net/sid#a256d08][rid#a4b5ca8/initial/redir#1] (1) [perdir /home/robibobi/sites/blog.robi-bobi.net/] redirect to http://www.robi-bobi.net/?url=/feeds/index.rss2 [REDIRECT/301]

dakle, vidim da jednom prodje pravilo: feeds/(.*) -> index.php?url=feeds/$1
dovde dobro
medjutim, zasto mi posle opet radi match na index.php, koji prolazi (verovatno ovo poslednje pravilo)

ENV:
debian
apache 2.2
php as fcgi

:lost:

robi-bobi 03. 12. 2009. 13:24

Off Topic: mislim da bi bilo dobro da se ovaj forum CODE view poveca - ovako je isuvise nisak i tesan

ivanhoe 03. 12. 2009. 16:17

Nisam siguran oko NS, i meni se cini logicno da ne bi trebalo da se pozovu posle internog redirecta, ali ko zna mozda se interni redirekti sa L ne racunaju?

dodaj samo ispred zadnjeg:
RewriteCond %{QUERY_STRING} !^url=

robi-bobi 03. 12. 2009. 17:09

kad sam zatupeo pa stalno pokusavam da provalim zasto ovo ne radi a ne pokusam nesta drugacije :)

hvala, radi


Vreme je GMT +2. Trenutno vreme je 15:05.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.