PDA

Pogčedajte punu verziju : kako može da se uradi...


nenadvr
08. 04. 2011., 21:22
u .htaccess-u rewriterule bi hteo da mi umesto querystringa u url-u piše samo vrednost jedne promenljive iz querystringa, znači ne bih da redirektujem na drugu adresu nego samo hoću da promenim ono štp piše u address baru da bi izgledalo lepše. Probao sam nešto kao:

RewriteCond %{QUERY_STRING} ^id=([0-9]+)&naziv=(.*)$
RewriteRule ^details\.php$ /%2? [R]

ali to nije to. Kad bi mogao nekako samo da zameni ono što piše a da poziva isti url sa querystringom

webarto
08. 04. 2011., 22:51
Teško, nije valjda da title prosleđuješ preko $_GET?

Šta fali ovome... ?

RewriteRule ^details/([0-9]+)-(.*)$ details.php?id=$1&naziv=$2 [QSA,L]

nenadvr
08. 04. 2011., 23:39
Pa ne fali ništa ali mislio sam da nekako može da se uradi ono što sam zamislio.
Ovako bi URL izgledao npr:

details/15-kozmetički salon

malo je čudno.
Hvala na odgovoru

webarto
08. 04. 2011., 23:59
Koliko znam ne može baš kako si zamislio...

Možeš i ovako...

/details/15/kozmeticki-salon

I ovako...

/details/15/kozmetički salon

Ali ovo drugo ne preporučujem, barem stavi crticu između, da ne pukne u ovim programima što ne podržavaju UTF8, kojih sve manje ali eto...

Funkcija za dobijanje prvog "kozmeticki-salon" od "Kozmetički Salon"...

function seo($input){
setlocale(LC_ALL, "en_US.UTF8");
$input = str_replace(array("'", "-"), "", $input);
$input = mb_convert_case($input, MB_CASE_LOWER, "UTF-8");
$input = iconv("UTF-8", "ASCII//TRANSLIT", $input);
$input = preg_replace("#[^a-zA-Z0-9]+#", "-", $input);
$input = preg_replace("#(-){2,}#", "$1", $input);
$input = trim($input, "-");
return $input;
}

nenadvr
09. 04. 2011., 00:36
Video sam na jednom sajtu da ima nesto slično
(valjda ne podleže nekom pravilu foruma o zabrani reklamiranja)

http://www.beoclick.com/k/Kozmeticki-saloni

pa kad klikneš na neki poseban salon dobiješ nešto kao

http://www.beoclick.com/Mimi_beauty_studio

to bi hteo da izvedem.

webarto
09. 04. 2011., 01:03
Onda ne smiješ imati 2 ista naslova, što ne valja baš + SELECT je par stotina puta sporiji... ako baš hoćeš mogu ti poslati funkciju..

dacha
09. 04. 2011., 06:59
Ovo što si u prvom postu napisao stvarno ne razumem, ili ti nisi najbolje shvatio šta mod_rewrite radi.

Uzeću zato ovaj primer koji si naveo, i pretpostaviću kako bi mogao da izgleda njihov query string:

http://www.beoclick.com/k/Kozmeticki-saloni
http://www.beoclick.com/k/Kozmeticki-saloni/Banjica
http://www.beoclick.com/Mimi_beauty_studio

RewriteRule ^k/([^/]+)$ /?kategorija=$1 [L]
RewriteRule ^k/([^/]+)/([^/]+)$ /?kategorija=$1&potkategorija=$2 [L]
RewriteRule ^([^/]+)$ /?salon=$1 [L]

Sad razmišljam, ako si hteo da ti url bude čist (da sadrži samo "naziv"), a da ipak proslediš "id" - to ne može. Ako hoćeš tako čist url moraš da imaš jedinstvene nazive u bazi; ako hoćeš da proslediš "id", mora da se pojavi u url-u u nekoj varijanti.

nenadvr
12. 04. 2011., 01:27
Prvi post je bio samo pokusaj, znam da to ne valja.

Hvala za odgovore i za funkciju

tasmaniski
11. 01. 2012., 00:50
Ako nekom treba 'URL Rewriting' nek pogleda ovaj link odlican je za pocetak

http://www.addedbytes.com/for-beginners/url-rewriting-for-beginners/