DevProTalk

Forumi IT profesionalaca
web development, web design, e-business, SEO


Idite nazad   DevProTalk > Web development i web aplikacije > Regular expression i htaccess
Želite da se reklamirate ekskluzivno na ovoj poziciji? Javite se

Regular expression i htaccess regex, PCRE, POSIX, upotreba Apache .htaccess , mod_rewrite

Odgovori
 
Alati teme Način prikaza
Staro 11. 12. 2009.   #1
ljtruba
old school
Expert
 
Datum učlanjenja: 14.10.2006
Poruke: 460
Hvala: 39
17 "Hvala" u 14 poruka
ljtruba is on a distinguished road
Default Moj CMS i URL slug

Poydrav,
imam veliku bazu vesti sa preko 600 članaka na sajtu www.hi-files.com/vesti

Želim da konačno napravim SEO friendly linkove, a kasnije i neki lepi kalendar za vesti.

Pročitao sam članak na linku
http://phptips.org/index.php/create-...d-mod_rewrite/
i uz pomoć njega napravio neku skriptu koju možete videti na
http://www.hi-files.com/vesti2.php

U htacces fajlu stoji sledece
Kôd:
RewriteEngine on
RewriteRule ^/?([a-z]+)$ $1.php [L]
RewriteRule ^vesti/([0-9]+)$ /vesti.php?page=$1 [L] 
RewriteRule ^vesti2/([0-9]+)$ /vesti2.php?page=$1 [L] 
RewriteRule ^vesti2/([a-zA-Z0-9\-]+)/?$ vesti2.php?articleurlslug=$1 [L]
Imam nekoliko problema.
1. ne radi mi link http://www.hi-files.com/vesti2
2. da li postoji automatski nacin kreiranja slug-a, jer trenutno imam u bazi dodatno polje pa 600 puta treba da unesem neki slug
3. sta se desava sa nasim slovima

znam da je problem kompleksan, ali pomagajte, zaista želim da napravim ovo kako treba
ljtruba je offline   Odgovorite uz citat
Staro 12. 12. 2009.   #2
MorenoArdohain
Knowledge base
Wrote a book
 
Avatar MorenoArdohain
 
Datum učlanjenja: 16.06.2005
Lokacija: Novi Sad
Poruke: 1.437
Hvala: 37
131 "Hvala" u 82 poruka
MorenoArdohain će postati "faca" uskoroMorenoArdohain će postati "faca" uskoro
Default

Mogu da ti pomognem samo oko ovog linka za vesti2.. Ne nalazi http://www.hi-files.com/vesti2 zato sto nemas regexp koji hvata to.. Regexpi koje si stavio hvataju samo vesti2 sa slashom i brojem strane.

Mali dodatak: vidim i ovaj prvi rule:
RewriteRule ^/?([a-z]+)$ $1.php [L]
izmeni ga da prihvata i brojeve, trebalo bi da vesti2 pretvara u vesti2.php

Pitanje je onda da li se kolje sa drugim rules
__________________
Năo quero mais seguir um só caminho

Poslednja izmena od MorenoArdohain : 12. 12. 2009. u 00:24.
MorenoArdohain je offline   Odgovorite uz citat
Staro 12. 12. 2009.   #3
japan
novi klan
Professional
 
Avatar japan
 
Datum učlanjenja: 03.02.2007
Poruke: 326
Hvala: 43
427 "Hvala" u 50 poruka
japan će postati "faca" uskorojapan će postati "faca" uskorojapan će postati "faca" uskorojapan će postati "faca" uskorojapan će postati "faca" uskoro
Default

1. ovako nesto bi verovatno pomoglo:
Kôd:
RewriteRule ^vesti2/?$ /vesti2.php [L]
2.
Kôd:
update tabela_vesti set slug=lcase(naslov)
3. mislim da ne bi trebalo da bude problema sa nasim slovima, ali ako bas hoces da imas ciste ASCII karaktere u url-ovima, onda bi trebalo da imas neku trazicionu tabelu u kojoj bi definisao tacno koji se karakter ubacuje umesto odredjenog naseg slova, i da to primenjujes i pri generisanju slug-a, a i pri ovom upitu iz stavke 2.

//edit: pod tranzicionom tabelom podrazumevam nesto poput ovoga $punc na linku koji si naveo, s tim da ne treba da izbacujes te karaktere, nego da ih zamenis slovima bez kukica...
__________________
We professional we dealin' with business

Poslednja izmena od japan : 12. 12. 2009. u 00:33.
japan je offline   Odgovorite uz citat
Staro 12. 12. 2009.   #4
ljtruba
old school
Expert
 
Datum učlanjenja: 14.10.2006
Poruke: 460
Hvala: 39
17 "Hvala" u 14 poruka
ljtruba is on a distinguished road
Default

Hvala obojici.

@Moreno
Kada umesto RewriteRule ^/?([a-z]+)$ $1.php [L] napisem RewriteRule ^/?([a-z][0-9]+)$ $1.php [L] onda mi drugi linkovi ne rade

@japan
Uradio sam RewriteRule ^vesti2/?$ /vesti2.php [L] i lepo radi

Sto se tice nasih slova, pogledajte trecu vest.
Slug u bazi je denon-osvežava-stereo-modele ali link ne radi
ljtruba je offline   Odgovorite uz citat
Staro 12. 12. 2009.   #5
nn.nn
nobody
Expert
 
Avatar nn.nn
 
Datum učlanjenja: 19.04.2007
Poruke: 537
Hvala: 14
705 "Hvala" u 106 poruka
nn.nn će postati "faca" uskoronn.nn će postati "faca" uskoronn.nn će postati "faca" uskoronn.nn će postati "faca" uskoronn.nn će postati "faca" uskoronn.nn će postati "faca" uskoronn.nn će postati "faca" uskoro
Default

Citat:
Originalno napisao ljtruba Pogledajte poruku
Sto se tice nasih slova, pogledajte trecu vest.
Slug u bazi je denon-osvežava-stereo-modele ali link ne radi
Ne radi jer si ograničio rule samo na ASCII znakove. Ako možeš, probaj da poslednje pravilo zameniš sa
Kôd:
RewriteRule ^vesti2/(.)/?$ vesti2.php?articleurlslug=$1 [L]
Ili uradi nešto poput onog što ti je japanac napisao pod 3.

Poslednja izmena od nn.nn : 12. 12. 2009. u 12:45.
nn.nn je offline   Odgovorite uz citat
Staro 14. 12. 2009.   #6
ljtruba
old school
Expert
 
Datum učlanjenja: 14.10.2006
Poruke: 460
Hvala: 39
17 "Hvala" u 14 poruka
ljtruba is on a distinguished road
Default

Premenio sam na RewriteRule ^vesti2/(.)/?$ vesti2.php?articleurlslug=$1 [L]
ali ipak ne radi.
ljtruba je offline   Odgovorite uz citat
Staro 14. 12. 2009.   #7
Nemanja Avramović
emperor Selassie
Grand Master
 
Avatar Nemanja Avramović
 
Datum učlanjenja: 20.10.2006
Lokacija: Mladenovac
Poruke: 754
Hvala: 361
576 "Hvala" u 88 poruka
Nemanja Avramović će postati "faca" uskoroNemanja Avramović će postati "faca" uskoroNemanja Avramović će postati "faca" uskoroNemanja Avramović će postati "faca" uskoroNemanja Avramović će postati "faca" uskoroNemanja Avramović će postati "faca" uskoro
Pošaljite ICQ poruku za Nemanja Avramović Pošaljite poruku preko MSN za Nemanja Avramović Pošaljite poruku preko Yahoo za Nemanja Avramović
Default

Mislim da treba:

Kôd:
^vesti2/(.*)/?$ vesti2.php?articleurlslug=$1 [L]
__________________
Moj portfolio sajtić | wat?
Nemanja Avramović je offline   Odgovorite uz citat
"Hvala" Nemanja Avramović za poruku:
Staro 15. 12. 2009.   #8
ljtruba
old school
Expert
 
Datum učlanjenja: 14.10.2006
Poruke: 460
Hvala: 39
17 "Hvala" u 14 poruka
ljtruba is on a distinguished road
Default

Radi!!! Bacite pogled na www.hi-files.com/vesti

Sto se tice htaccess-a stavio sam
Citat:
RewriteRule ^vesti/([0-9]+)$ /vesti.php?page=$1 [L]
RewriteRule ^vesti/?$ /vesti.php [L]
RewriteRule ^vesti/(.*)/?$ vesti.php?articleurlslug=$1 [L]
Napravio sam php fajl koji mi radi update tabele sa vestima i pravi slug tako sto uzima naslov, skida mu & / ' i umesto spejsova stavlja -. Takodje, radi i lowercase i stripslashes.

Pri unosu novih vesti, napravio sam da se slug sam kreira po istom pravilu, ali da je pri editovanju clanka moguce menjati i slug.

Uh, sad kad krene poseta sa Gugla
ljtruba je offline   Odgovorite uz citat
Staro 15. 12. 2009.   #9
cvele
Banned
Knowledge base
 
Avatar cvele
 
Datum učlanjenja: 01.07.2005
Poruke: 1.598
Hvala: 206
140 "Hvala" u 89 poruka
cvele ima spektakularnu aurucvele ima spektakularnu auru
Default

Najefikasniji nacin da kreiras slug je pri unosu vesti u zasebno polje u tabeli.
Dakle, napravis fju koja ce ti od naslova praviti slug i upisivati ga u bazu.

Primer (obrati paznju na encoding):
PHP kôd:
function toSlug$title )
{
$bad = array( 'Š','Ž','š','ž','ź','Ŕ','Á','Â','Ă','Ä','Ĺ','Ç','Č','É','Ę','Ë','Ě','Í','Î','Ď','Ń',
'Ň','Ó','Ô','Ő','Ö','Ř','Ů','Ú','Ű','Ü','Ý','ŕ','á','â','ă','ä','ĺ','ç','č','é','ę',
'ë','ě','í','î','ď','ń','ň','ó','ô','ő','ö','ř','ů','ú','ű','ü','ý','˙',
'Ţ','ţ','Đ','đ','ß','Ś','ś','Ć','ć','µ',
'"',"'",'“','”',"\n","\r",'_','ć','Ć','č','Č','đ','Đ');

$good = array( 'S','Z','s','z','Y','A','A','A','A','A','A','C','E','E','E','E','I','I','I','I','N',
'O','O','O','O','O','O','U','U','U','U','Y','a','a','a','a','a','a','c','e','e','e',
'e','i','i','i','i','n','o','o','o','o','o','o','u','u','u','u','y','y',
'TH','th','DH','dh','ss','OE','oe','AE','ae','u',
'','','','','','','-','c','C','c','C''dj''Dj');

$slug str_replace$bad$good$title);

$slug trim($slug);
$bad_reg = array('/\s+/','/[^A-Za-z0-9\-]/');
$good_reg = array('-','');

return 
strtolower(preg_replace($bad_reg$good_reg$slug));

cvele je offline   Odgovorite uz citat
Staro 16. 12. 2009.   #10
ljtruba
old school
Expert
 
Datum učlanjenja: 14.10.2006
Poruke: 460
Hvala: 39
17 "Hvala" u 14 poruka
ljtruba is on a distinguished road
Default

Hvala cvele, ali nasa slova u mom slucaju lepo rade, tako da nema potreba da ih "osakatim"
ljtruba je offline   Odgovorite uz citat
Odgovori


Alati teme
Način prikaza

Pravila pisanja
Možete ne započinjati nove teme
Možete ne slati odgovore
Možete ne slati priloge
Možete ne izmeniti svoje poruke
vB kôd je Uključen
Smajliji su Uključen
[IMG] kod je Uključen
HTML kôd je Isključen
Pogledajte forum

Slične teme
Tema Početna poruka teme Forum Odgovori Poslednja poruka
"post slug" prikaz u WordPressu Deki80 Sva početnička pitanja 7 04. 09. 2008. 22:49


Vreme je GMT +2. Trenutno vreme je 06:49.


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.