Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PrettyURL jak zrobić to od zera?
Forum PHP.pl > Forum > Serwery WWW
Avatarus
No więc tak, mam tablicę w bazie, gdzie powiedzmy są 3 pola: id,tytul i tresc

Skrypt działa tak że pobiera dane z tej tabeli i wyświetla listę tytułów z tej tabeli.
Każdy tytuł jest linkiem o takiej budowie: strona.php?id=X
gdzie X jest numerem id strony w tej tabeli.

Wszystko działa, ale jak to zrobić żeby były to linki przyjazne? np strona/testowa-strona
?
Gdyby była stałą ilość linków to bym sobie poradził, ale z racji tego że jest to zmienne, to stwarza to pewien problem dla mnie.
thek
Musisz stworzyć kod pośrednicczący, który przetworzy linki do postaci zrozumiałej dla serwisu. Zakończy sie to tym, że będziesz miał kod, który pobierze ów tekst z url, sprawdzi w bazie czy taki istnieje, i jeśli tak, to zwróci do aplikacji jego Id. Z tym już strona sobie poradzi.
Eternal Soul Harvester
A może strona/<id>/testowa-strona? Niektórzy (np. ja) stosują takie rozwiązanie. Proste i ładnie indeksują je wyszukiwarki.
thek
Może być. Wtedy ma o niebo prościej. Za pomocą htaccess od razu przekieruje na plik prawidłowy, bez pośrednika smile.gif

Jedynie w regule htaccess zrobi ^strona/([0-9]+)/([.*]) strona.php?id=$1 lub jak tam chce by pasowało. Ja pisałem o pośredniku (w sumie spełni on rolę mixu routera i dispatchera), bo widziałem, że nie ma mieć ID w linku, więc uznałem, że ma w bazie zapisany linkt seo i to jego szuka, a nie chcesz modyfikować już istniejącego skryptu i jakoś chce to połączyć smile.gif
Avatarus
no niby wszystko fajnie ale problem mam lekki
http://avatarus.biz/trzecha_cms/
Klikając na nazwę jakiegoś newsa powinny pojawić się jego detale.
tzn w domyśle był to link news.php?id=X
zamaskowałem to w htaccess:
RewriteRule ^/news/([0-9]+)/(.*) /news.php?id=$1 [L]
no i niby linki wchodzą, ale tak jak by nie przekazywały zmiennej $1

najśmieszniejsze jest to że mam lustrzane odbicie tego skryptu lokalnie na wampie i działa dobrze.
Czy nie ma więc jakiegoś problemu z serwerem? działam na ovh.pl

Dzięki
thek
Może w samym skrypcie źle odbierasz parametry. inna konfiguracja serwera lokalnego i produkcyjnego może sprawić, że zmienne się nie ustawiają. Zrób sobie debug zmiennych w skrypcie a sam zapewne zauważysz że id ustawia się jako 0 ;)Dlatego daj kawałek kodu gdzie masz zmienną id tworzoną.
Avatarus
potrzebuje z tym pomocy.
linku news/18/test-bbcode nie łapie
z taką dyrektywą:
Kod
RewriteRule ^news/([0-9]+)/([0-9a-z-]+)$ news.php?id=$1 [L,QSA,NC]

ale link news-18-bbcode
z bardzo podobną dyrektywą
Kod
RewriteRule ^news-([0-9]+)-([0-9a-z-]+)$ news.php?id=$1 [L,QSA,NC]

już łapie...czemu?
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.