Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Przyjazne linki
Forum PHP.pl > Forum > Przedszkole
Gray
Hej,
posiadam na swojej stronie skrypt, który generuje link do każdego wpisu w takiej postaci adres.pl/artykul.php?1 dodatkowo w innej zmiennej przechowywany jest tytuł do artykułu $tytul_artykulu, czy ktoś mógł by mi napisać jak zrobić do tego przyjazny link który wyglądał by na przykład tak: adres.pl/artykul/1/tytul_artykulu

Nie wiem czy podałem wystarczająco dużo danych, w razie potrzeby podam co potrzeba.

Pozdrawiam i z góry dziękuję za pomoc,
Gray
pedro84
mod_rewrite
Gray
Dzięki ale tyle to i ja wiem... czytałem tutoriale jednak troche to skomplikowane dlatego zapytałem o konkretną pomoc...
Bureau
sprawdz to:

RewriteRule ^/?([a-z]*)/([a-z]*)/([a-z]*)/([0-9]*)/$ index.php?kataegoria=$1&podkategoria=$2&art=$3&st=$4 [NC,L]

z tym linkiem co ty masz to bym to zrobił tak:

RewriteRule ^/?([a-z]*)([0-9]*)/([a-z]*)/$ artykuly.php?kategoria=$1&id=$2&nazwa=$3 [NC,L]

Chociaż proszę o poprawienie mnie jeśli źle to napisałem, bo z rewrite miałem do czynienia dawno ;d

pozdro.
Gray
Nie rozumiem, w jaki sposób to ma działać i w jaki sposób to ma wstawiać na końcu tytuł artykułu ze zmiennej?
jaslanin
mod_rewrite służy do maskowania adresów URL, Mówiąc prościej robi coś takiego, że jak wpisujesz do przeglądarki URL, on po Cichu zmienia go na inny URL. Tak, że jeżeli się nie zgadnie że to mod_rewrite to tego nie widać (może też wykonywać przekierowania i inne ciekawe rzeczy, ale służy głównie do tego o czym pisałem)

Ustawić tytuł musisz w pikach PHP, najprościej gdybyś używał do tego tablicy. I odwoływał się do niej po jej kluczu który odpowiada id z URL
Bureau
Czyli nie masz nic z tym zrobionego ? smile.gif Myslałem że masz tylko brakuje Ci odpowiedniej regułki w .htaccess smile.gif

Ja robiłem to tak że w pliku z artykułami robiłem wyświetlanie danych z MySQL, a następnie przypisywałem zmiennym wartość z poszczególnych tabel - standardowa chyba procedura u mnie.

np.

Kod
$id = $row['id'];
$nazwa = $row['nazwa_artykulu'];
$kategoria = 'Artykuly';


Wtedy robisz link:

Kod
<a href="artykuly.php?kategoria=<?php echo $kategoria; ?>&id=<?php echo $id; ?>&nazwa=<?php echo $nazwa; ?>"><?php echo $nazwa; ?></a>


to robisz w pliku artykuly.php w listowaniu wszystkich artykułów.

później stwórz na serwerze w głównym katalogu plik o nazwie .htaccess, a w nim:

Kod
RewriteEngine On
# włączenie przepisywania linków
RewriteBase /
# niezbędne kiedy umieszczamy plik .htaccess w podkatalogach naszej domeny
RewriteRule ^/?([a-z]*)/([0-9]*)/([a-z]*)/$ artykuly.php?kategoria=$1&id=$2&nazwa=$3 [NC,L]
# poniżej szersze wyjaśnienie reguł
# powinniśmy zawsze zostawiać pustą linię na końcu pliku .htaccess


nie jestem pewny czy te zmienne musza byc zmienione, ale jeśli tak to spróbuj ten kod:

Kod
RewriteEngine On
# włączenie przepisywania linków
RewriteBase /
# niezbędne kiedy umieszczamy plik .htaccess w podkatalogach naszej domeny
RewriteRule ^/?([a-z]*)/([0-9]*)/([a-z]*)/$ artykuly.php?kategoria=$kategoria&id=$id&nazwa=$nazwa [NC,L]
# poniżej szersze wyjaśnienie reguł
# powinniśmy zawsze zostawiać pustą linię na końcu pliku .htaccess


Ja bym w tym kierunku robił, a przynajmniej kiedyś jak robiłem takie linki to w tym stylu. Może będze Ci to pomocne w jakimś stopniu i Cię nakierunkuje ocb smile.gif

Tylko tu pewnie jeszcze dojdzie Ci funkcja do zmieniania spacji na _ oraz z PL znaków na ENG ponieważ sądze iż nie będą to zbyt przyjazne linki tongue.gif

Pozdrawiam smile.gif
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.