Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: .htaccess przepisywanie adresów
Forum PHP.pl > Forum > Serwery WWW
Papub
Witam,
mam taki problem. Mam w bazie danych nazwy kategorii które w nazwie mają polskie litery.
np. zarządzanie

do tej pory przepisywałem adres w postaci 4-zarzadzanie.html na page.php?id=4&nazwa=zarzadzanie
nie mniej jednak w tej postaci do każdego linku musiałem doklejać cyfrę którą była id_kategori i tak szczerze mówiąc to wyciągałem dane przypisane do danej kategori tylko po numerze kategorii - w tym przypadku (4)

chciałbym zrobić aby skrypt przepisywal ścieżkę np. strona-glowna/oferta/zarzadzanie na page.php?sciezka=strona-glowna/oferta/zarzadzanie
dalej to by uległo obrobieniu żeby wyciągnąć odpowiednie dane z kategori zarzadzanie. I tutaj pojawia mi się problem. Problem jest z literką "ą"

jak mam wybierać dane z bazy po samym tytule? w bazie nie istnieje kategoria zarzadzanie tylko zarządzanie. Ręcznie nie mogę wpisać przed zapytaniem że ma zamienić zarzadzanie na zarządzanie bo wszystko ma się odbywać dynamicznie. Nie mam pojęcia jakie kategori utworzy użykownik

z drugiej strony nie mogę w bazie dodac kolumny z nazwa kategori bez polskich znaków bo jak ktoś doda kategorie "zarządzanie" i "zarzadzanie" wtedy usunięcie polskich znaków da ten sam efekt. Jest jakieś rozwiązanie tego problemu czy zawsze muszę ciągnąć w linku id kategori?

Pozdrawiam
erix
Google: slug.
Sephirus
To nie takie proste. Slug i ogólnie zamiana ciągu ze specjalnymi znakami na url-friendly może nie wystarczyć. Jeśli mówisz, że istnieje możliwość posiadania w bazie dwóch takich samych slugów to nie tędy droga niestety. Link musi być unikalny aby wskazywał na jedną, konkretną rzecz/stronę. Ta metoda nadaje się tam gdzie mamy zapewnioną unikalność (może być na poziomie bazy - pole UNIQUE) ale gdzieś musi. Adresy typu:

4-zarzadzanie.html
zarzadzanie,4.html

itp. są w praktyce tak samo dobre co "zarzadzanie.html" pod względem SEO itd - google nie ma problemu z radzeniem sobie z URI przedzielonymi myślnikami czy przecinkami. Jeśli zupełnie nie podobają Ci się "numerki" możesz je kodować (przykłady są nawet na tym forum).

Zamiast

4-zarzadzanie.html

można dać np.:

EdcF-zarządzanie.html

Kwestia gustu. IMHO powinieneś zostać przy przekazywaniu w URL ID kategorii o ile nie zapewnisz unikalności nazwy.
erix
Cytat
Jeśli mówisz, że istnieje możliwość posiadania w bazie dwóch takich samych slugów to nie tędy droga niestety.

Prawidłowe generowanie slugów uwzględnia kolizje. W np. Drupalu jest to skonstruowane tak, że w przypadku kolejnego wystąpienia tego samego ciągu, dopisywany jest na końcu licznik.
Papub
Tak właśnie myślę, że jeżeli w adresie nie będę przekazywał id to narastają mi się problemy.
Mając 100 artykułów a danej kategori to skąd mógłbym wiedzieć do jakiego linka z tytułem dodać liczbę (jak w drupalu) a do którego nie.
Dla każdego wyciągniętego wiersza (tytułu artykułu) sprawdzać czy nie istnieje w bazie jeszcze jakiś artykuł co po usunięciu polskich znaków ma taki sam link.
Zamęcze serwer. Chyba to nie uniknione żeby doklejać id

Chociaż nie smile.gif przemyślałem. Dopisywać cyfre od razu podczas dodawania nowej kategori i będzie dobrze smile.gif to jest jakiś pomysł. Dzięki za info
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.