Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> PrettyURL jak zrobić to od zera?
Avatarus
post 27.03.2011, 09:19:15
Post #1





Grupa: Zarejestrowani
Postów: 304
Pomógł: 0
Dołączył: 12.12.2006
Skąd: Pszów

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


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.


--------------------
Go to the top of the page
+Quote Post
thek
post 27.03.2011, 12:34:23
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




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.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
Eternal Soul Har...
post 27.03.2011, 14:51:47
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 1
Dołączył: 28.02.2011

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


A może strona/<id>/testowa-strona? Niektórzy (np. ja) stosują takie rozwiązanie. Proste i ładnie indeksują je wyszukiwarki.
Go to the top of the page
+Quote Post
thek
post 27.03.2011, 18:23:44
Post #4





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




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


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
Avatarus
post 31.03.2011, 19:11:56
Post #5





Grupa: Zarejestrowani
Postów: 304
Pomógł: 0
Dołączył: 12.12.2006
Skąd: Pszów

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


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


--------------------
Go to the top of the page
+Quote Post
thek
post 31.03.2011, 20:34:52
Post #6





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




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ą.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
Avatarus
post 6.04.2011, 22:23:14
Post #7





Grupa: Zarejestrowani
Postów: 304
Pomógł: 0
Dołączył: 12.12.2006
Skąd: Pszów

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


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?


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 24.06.2025 - 06:18