Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Przepisywanie urli na podstawie wzorca
pzcjnr
post
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 26.03.2009

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
sada
post
Post #2





Grupa: Zarejestrowani
Postów: 302
Pomógł: 24
Dołączył: 6.12.2008

Ostrzeżenie: (0%)
-----


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]

Ten post edytował sada 12.02.2011, 23:32:28
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 19:18