Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Przepisywanie urli na podstawie wzorca
Forum PHP.pl > Forum > Przedszkole
pzcjnr
Witam,

Napisałem sobie prosty skrypcik. Służy on do wyświetlania na stronie artykułów z bazy danych. Mam jednak pewien problem do którego nie wiem z której strony podejść.

Obecnie działa to tak:

- jest sobie plik index.php i art.php
- w pliku index.php jest menu budowane z dostępnych artykułów w bazie w ten sposób:
  1. while($row=mysql_fetch_array($sql)){
  2.  
  3. echo '<li><a href="art-'.$row['id'].'.html">'.$row['tytul'].'</a></li>';
  4. }


- w pliku htaccess mam tak:
  1. RewriteEngine On
  2. RewriteRule ^art-(.+)\.html$ /art.php?id=$1 [L]


Konstrukcja ta działa mi tak jak chciałem. Modrewrite przepisuje mi adresy z postaci na art-[id].html na art.php?id='[id]'

Chciałem jednak to wzbogacić o ładniejsze urle.
Chciałbym, żeby adresy url były budowane na podstawie tytułu artykułu do którego prowadzą. (tabela z artykułami składa się z id, tytuł, treść )
Czyli php "budując menu" pierw tytuł rekordu przepuszcza przez jakąś funkcje, która mi przekształci tytuł np. "Obróbka zdjęć" na "obrobka_zdjec" i następnie buduje z tego link w postaci /obrobka_zdjec.html. Z funkcją przekształcającą sobie poradzę.

Problem jaki mam to przede wszystkim czy taka konstrukcja ma szanse działać i jaką dyrektywę należy dodać do htaccess by przepisywało prawidłowo. Próbowałem trochę ale mam 404 za każdym razem. Pierwszy raz zajmuje się czymś takim i nie bardzo jak narazie mam pomysły jak zrobić żeby mieć ładne urle budowane na podstawie tytułu podstrony do której kierują. I co najważniejsze jak to rozwiązać w htaccess

Życzliwych proszę o wskazówki i pomoc smile.gif
sada
Tytuł i treść zamień w PHP jakimś preg_replace.
Ponieważ id identyfikuje rekord bazy danych w htaccesie zamieniaj tylko id
Nie musisz po prawej stronie umieszczać odpowiednika do wszystkich atomów z lewej strony
Dla pozycjonowania ważna jest lewa strona

RewriteRule ^costam/(.+)/(.+)/([0-9]+) strona.php?id=$3 [L]
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.