Validare URL nume_articol+id

Secţiune dedicată începatorilor.

Moderatori: Moderatori, Start Moderator

evolution
Average Member
Mesaje: 118
Membru din: Lun Noi 06, 2006 8:04 pm

Validare URL nume_articol+id

Mesajde evolution » Dum Noi 08, 2009 8:45 pm

Am un site la care pagina de articol este de forma:
www site ro/nume-articol-id.html
www site ro/vremea-este-calda-158.html

Deci am numele articolului si id-ul in url.

Problema este ca daca tastez in URL niste caractere in plus tot se incarca pagina,desi ar trebui sa dea 404 sau sa fac redirect catre index.

www site ro/vre5mea-e3ste-calMda-158.html


In pagina produsului acesta este codul care identifica despre ce produs este vorba:

Cod: Selectaţi tot

$sql = "select * from produse where (id_produs='$id_produs')";



Cum as putea sa fac astfel incat daca sunt caratere in plus sa dea 404 sau sa fac redirect spre index?



zzerachiel
PHPRomania Supporter
Mesaje: 15
Membru din: Lun Aug 17, 2009 8:13 pm

Mesajde zzerachiel » Dum Noi 08, 2009 10:08 pm

Acolo tu ai regula in htacces, si trimiti _id_ prin GET.

Ce ai putea sa faci esti sa mai adaugi o verificare in PHP sa vezi daca numele articolului este identic cu cel din addresbar sau nu.

olympia
Senior Member
Mesaje: 374
Membru din: Lun Mai 26, 2008 11:12 pm
Contact:

Mesajde olympia » Lun Noi 09, 2009 3:28 am

parerea mea este ca te complici; nu ai niciun interes sa iti dea 404, din moment ce rescrierea o ai dupa tittu. ai putea sa modifici ceva pirn .htaccess, dar repet, nu vad rostul.

evolution
Average Member
Mesaje: 118
Membru din: Lun Noi 06, 2006 8:04 pm

Mesajde evolution » Lun Noi 09, 2009 12:25 pm

olympia , rostul este urmatorul: daca cineva rau intentionat imi pune 100 de linkuri catre 100 de astfel de pagini create artificial , rezulta 100 de pagini duplicate pe care le indexeaza Google.

Din PHP ar trebui facuta o validare la url , daca titlul+id-ul nu sunt identice cu inregistrarea din mysql sa dea 404 sau redirect.

Verificati si la siteurile voastre daca se intampla asa. Poate are cineva idee cum se poate face.

Avatar utilizator
kleampa
Senior Member
Mesaje: 2774
Membru din: Dum Iul 10, 2005 2:12 pm
Localitate: Bucuresti
Contact:

Mesajde kleampa » Lun Noi 09, 2009 12:31 pm

pur si simplu daca nu exista inregistrare cu id+titlu ii faci tu un redirect catre un 404 (acel 404 poate fi o pagina modificata de tine in care sa-i spui ca "acest articol nu exista, click aici pentru articole din aceeasi categorie..."

in htacces cu ErrorDocument 404 poti pune ce pagina vrei sa fie "vazuta" de spideri ca 404

olympia
Senior Member
Mesaje: 374
Membru din: Lun Mai 26, 2008 11:12 pm
Contact:

Mesajde olympia » Lun Noi 09, 2009 3:14 pm

eu am inteles f bine ce zici. as vrea si eu 100 de linkuri gratuite care sa duca la pagina corecta, chiar daca url-urile ar fi incorecte!

la tine asa e scris .htaccessul banuiesc, "inghite" orice caracter pe primul subpattern: (.*) sau poate ai $1-$2-$3-$4

daca pui linkurilor tale atributul canonic
<link rel="canonical" href="http://example.com/page.html"/>
(gugleste ptr detalii)

nu te afecteaza nicicum duplicatele, pentru ca atributul canonic este invalid cross-domain.


Înapoi la “PHP Incepători”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 22 vizitatori