Pogčedajte punu verziju : mod_rewrite radi na statičkim fajlovima, ne i na dinamičkim
Miroslav
23. 06. 2009., 15:05
Ovako izgleda moj .htaccess fajl:
ErrorDocument 404 /404.php
RewriteEngine on
RewriteRule /shop/?sif=109 /shop/kategorija/109
RewriteRule index03.html index04.html
Problem je što RewriteRule radi kad je u pitanju preusmeravanje sa index03.html -> index04.html, dok u prvom slučaju ne.
Da li možda neko zna u čemu je problem?
Unapred hvala.
verovatno u znaku '?' koji u regular-expression oznacava 'moguci karakter' :)
probaj da ga escape-ujes sa \?
znaci:
RewriteRule /shop/\?sif=109 /shop/kategorija/109
mileusna
23. 06. 2009., 15:39
Za svaki slučaj isključi MultiViews opciju na Apaču, ona je najčešći razlog za pravljenje nesporazuma.
Ovako izgleda moj .htaccess fajl:
ErrorDocument 404 /404.php
RewriteEngine on
RewriteRule /shop/?sif=109 /shop/kategorija/109
RewriteRule index03.html index04.html
Problem je što RewriteRule radi kad je u pitanju preusmeravanje sa index03.html -> index04.html, dok u prvom slučaju ne.
Da li možda neko zna u čemu je problem?
Unapred hvala.
Mislim da bi trebalo da bude nesto slicno sledece:
RewriteRule /shop/\?sif=(\d+) /shop/kategorija/$1 [NC,L]
Miroslav
24. 06. 2009., 10:23
Nažalost ništa od ovoga neće da radi. Samo mi izbaci 404 grešku.
Kad izbacim "MultiViews"
Options -MultiView
onda mi javi 500 grešku.
U svakom slučaju problem sam rešio u samom PHP-u:
header("HTTP/1.1 301 Moved Permanently");
header("Location: novi_url");
Kažu da je i ova metoda "Google friendly".
Međutim, malo me je zbunilo što stara strana koja ima PR 3 izgubi taj PR pri redirekciji na novu, a kaže se da 301 redirekcija služi najviše za to... da se zadrži stari PR.
Ono što mi je još zanimljivije kad uradim samo običan header
header("Location: novi_url");
dakle bez 301, PR ostane isti. Samo što u ovom slučaju imamo dupliran sadržaj. :(
mileusna
24. 06. 2009., 13:56
Mislim da ne možeš tako da izbaciš MultiViews, pogledaću u toku dana. Da li je to dedicated server, imaš li pristup httpd.conf?
Miroslav
25. 06. 2009., 11:23
Mislim da jeste "dedicated".
mileusna
25. 06. 2009., 13:27
Onda isključite MultiViews u httpd.conf ili već gde je konfigurisan sajt o kome pričaš, ako je ubačen.
Miroslav
26. 06. 2009., 11:36
Hvala svima na odgovorima.
Da nebi više mučio administratore ovde po firmi, problem sam rešio u samom PHP-u:
header("HTTP/1.1 301 Moved Permanently");
header("Location: novi_url");
bOkIcA
26. 06. 2009., 13:51
Tu je jako diskutabilo sta si u stvari hteo da postignes.
Da li zelis da ti linkovi budu /shop/kategorija/109 a da ih interno docekuje program pod /shop/index.php?sif=109 ?
Ako je tako onda ti treba nesto poput:
RewriteRule /shop/kategorija/(\d+) /shop/index.php?sif=$1 [NC,L]
Ako zelis da radis stalnu redirekciju linkova onda koristis flag [R=301,L]
gde R znaci da je u pitanju redirekcija a L znaci poslednja stavka.
RewriteRule index03.html index04.html [R=301,L]
Iskreno, deluje mi kao da si obrnuo stvari.
Miroslav
08. 07. 2009., 18:13
Da nebih otvarao novu temu:
Imam problem da mi
nekisajt.com/test/
bude isto što i
nekisajt.com/test.php
Pokušavao sam da u .htaccess ubacim
<Files test>
ForceType application/x-httpd-php
</Files>
ali ne radi. Ovo sam inače pročitao ovde:
www.sitepoint.com/article/search-engine-friendly-urls/
Dakle samo želim da sklonim ovo .php iz adrese.
Inače do sada nisam imao problem sa ovim stvarima. Mislim da se ovo može podesiti i u http.conf. Tako sam barem radio kod sebe na localhost, ali pošto je ovo na hosting provajderu nemogu ništa više da uradim osim u .htaccess.
Ima li neko rešenje?
vBulletin® v3.6.8, Copyright ©2000-2024, Jelsoft Enterprises Ltd.