Pogčedajte punu verziju : .htaccess - rewrite (permalink)
Moze li mi neko pomoci u vezi ovoga:
RewriteEngine On
Options +Followsymlinks
RewriteBase /stranice/
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.* - [L,QSA]
RewriteRule ^vesti/vest/(.+) /stranice/vesti/index.php#perm$1 [L]
Dakle, na stranici index.php imam anchore koji vode do vesti i koji se imenuju po nazivu vesti. Rewrite radi, prikazuje mi pravu stranicu, ali ne odlazi na anchor. U cemu je problem?
Ilija Studen
15. 01. 2007., 14:48
Browser uopšte nije svestan URL-a sa kojim je originalni URL prepisan tako da ne može da zna anchor. Da bi radilo tako kako si opisao treba da staviš anchore na originalne linkove...
Anchori postoje u originalnom URLu. Nasao sam da mod_rewrite izbacuje # znak i da se to resava [NE] flagom. Sto sam i uradio. Ali i dalje ne radi? Ako dodam jos i [R] flag, sve radi savrseno, ali izvrsi redirekciju, sto ja ne zelim.
da budem konkretniji:
Ovo radi (sa nezeljenim efektima):
RewriteEngine On
Options +Followsymlinks
RewriteBase /stranice/
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.* - [NE,L,QSA]
RewriteRule ^vesti/vest/(.+) /stranice/vesti/index.php#perm$1 [NE,L,R]
Ovo NE radi:
RewriteEngine On
Options +Followsymlinks
RewriteBase /stranice/
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.* - [NE,L,QSA]
RewriteRule ^vesti/vest/(.+) /stranice/vesti/index.php#perm$1 [NE,L]
ivanhoe
15. 01. 2007., 16:49
uf, moras da malo bolje razumes tehnologiju koju pokusavas da koristis.
Browser je taj koji skroluje stranu na anchor. S druge strane, kao sto Ilija vec rece, rewrite se radi interno u apachu, browser za to ne zna. [R] flag radi spoljni redirekt, pa zato browser zna za anchor, pa zato skroluje stranu.
Odnosno, da skratim pricu, ne moze to sto ti hoces. Ako zelis da sakrijes anchor u address baru browsera, koristi frejmove..
OK. Razumem ja da je client side kada se poziva anchor. Samo sam mislio da apac prosledi # zahtev browseru. Posto u dokumentaciji mod_rewritea ima odeljak koji se bavi anchor handlingom, i kao napomenu su stavili da se bas zbog toga koristi [NE] flag.
Ali vise nije bitno, resio sam problem na drugi nacin...
ivanhoe
16. 01. 2007., 06:08
da, ali ta napomena se odnosi na spoljni redirect sa [R] flagom. Tu se [NE] koristi da bi se sprecilo escapeovanje # sa %23. Kod internih redirekta anchor naprosto nema smisla, posto ne postoji nikakav poseban "# zahtev", browser naprosto pogleda url, pa ako ima #foo u sebi onda potrazi taj foo anchor. Ako se url u address baru nije promenio (jer je redirekt interni unutar apacha) onda browser nema nacina da zna da ti hoces da on skroluje stranu.
vBulletin® v3.6.8, Copyright ©2000-2024, Jelsoft Enterprises Ltd.