Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przyjazne linki PHP
matis95
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 1
Dołączył: 18.12.2009

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


Witam. Jak mogę w php generować przyjazne linki? Moje linki teraz wyglądają tak:
adresstrony.pl/readnews.pl?id=1
a chciałbym, żeby wyglądały tak:
adresstrony.pl/tytulnewsa
albo
adresstrony.pl/news/tytulnewsa
Newsy trzymam w MySQL.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
Spawnm
post
Post #2





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




szukaj w google: mod_rewrite + przyjazne linki
Go to the top of the page
+Quote Post
matis95
post
Post #3





Grupa: Zarejestrowani
Postów: 17
Pomógł: 1
Dołączył: 18.12.2009

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


Szukałem, ale niestety nic nie znalazłem.
Go to the top of the page
+Quote Post
adrianozo
post
Post #4





Grupa: Zarejestrowani
Postów: 733
Pomógł: 4
Dołączył: 11.11.2009

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


Może ten artykuł pomoże?

http://ownpage.pl/seo/przyjazne-adresy-url...omocy-htaccess/


--------------------
Go to the top of the page
+Quote Post
matis95
post
Post #5





Grupa: Zarejestrowani
Postów: 17
Pomógł: 1
Dołączył: 18.12.2009

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


W ten sposób otrzymuje adres mojastrona.pl/1.html
a ja chce, żeby zamiast 1 był tytuł newsa z MySQL
Go to the top of the page
+Quote Post
Spawnm
post
Post #6





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Kod
# Turn on URL rewriting
RewriteEngine On

# Installation directory
RewriteBase /

# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php/$0 [PT,L]


Dane odbierasz przez $_SERVER['REQUEST_URI'] , potem robisz explode('/', $dane); .
Oczywiście musisz sobie to jakoś rozwinąć od strony php.
Go to the top of the page
+Quote Post
gigzorr
post
Post #7





Grupa: Zarejestrowani
Postów: 652
Pomógł: 47
Dołączył: 6.02.2010
Skąd: Radom

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


chcesz tytul a pobierasz id proste.

spawn , derby?biggrin.gif

Ten post edytował gigzorr 28.10.2010, 18:24:18
Go to the top of the page
+Quote Post
drakos
post
Post #8





Grupa: Zarejestrowani
Postów: 25
Pomógł: 1
Dołączył: 28.10.2010

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


Najpierw warto znormalizować tytuły w osobnej kolumnie tabeli. Ja używam zwykle name dla normalnych tytułów i nicename dla znormalizowanych. Normalizacja to nic innego co podmiana polskich znaków na odpowiedniki, strtolower i zamiana spacji na - albo _.
Drugi krok to zmiana parametru GET na ów nicename, tak, ze na przykład adres to: mojastrona.pl/readnews.php?nicename=tytul-przykladowego-artykulu
Teraz dodajesz regułę, która przekieruje mojastrona.pl/tytul-przykladowego-artykulu.html na link jak powyżej.

Nie mam teraz czasu, by szukać tego, a rewrita zazwyczaj nie piszę, tylko przepisuję z dokumentacji.
Go to the top of the page
+Quote Post
matis95
post
Post #9





Grupa: Zarejestrowani
Postów: 17
Pomógł: 1
Dołączył: 18.12.2009

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


Cytat(drakos @ 28.10.2010, 19:24:06 ) *
Najpierw warto znormalizować tytuły w osobnej kolumnie tabeli. Ja używam zwykle name dla normalnych tytułów i nicename dla znormalizowanych. Normalizacja to nic innego co podmiana polskich znaków na odpowiedniki, strtolower i zamiana spacji na - albo _.
Drugi krok to zmiana parametru GET na ów nicename, tak, ze na przykład adres to: mojastrona.pl/readnews.php?nicename=tytul-przykladowego-artykulu
Teraz dodajesz regułę, która przekieruje mojastrona.pl/tytul-przykladowego-artykulu.html na link jak powyżej.

Nie mam teraz czasu, by szukać tego, a rewrita zazwyczaj nie piszę, tylko przepisuję z dokumentacji.


Chciałem tak zrobić, ale jaki muszę dać typ pola w bazie, aby to działało. Bo jak daje TINYTEXT to gdy znajduje się w nim wartość liczbowa, to wszystko jest ok, ale jak jest tam jakiś ciąg liter, to nie działa.
Go to the top of the page
+Quote Post
Mephistofeles
post
Post #10





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

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


Varchar, i oczywiście pole musi być unikalne, do tego nie może zawierać znaków nieakceptowanych jako URL.
Go to the top of the page
+Quote Post
matis95
post
Post #11





Grupa: Zarejestrowani
Postów: 17
Pomógł: 1
Dołączył: 18.12.2009

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


mam tak:
  1. ("select * from news where adres='".(int)$_GET['adres']."'");

Ale po wejściu na plik.php?adres=wartoscpolaadreswmysql wyświetla się tylko ()

Ten post edytował matis95 28.10.2010, 19:04:29
Go to the top of the page
+Quote Post
darophp
post
Post #12





Grupa: Zarejestrowani
Postów: 309
Pomógł: 20
Dołączył: 13.02.2010
Skąd: Kęty

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


@erix pisał coś na ten temat winksmiley.jpg


--------------------
Fotografia, projektowanie stron WWW | web-coding.pl - HTML 5 i CSS 3 - już w krótce ;)
Go to the top of the page
+Quote Post
matis95
post
Post #13





Grupa: Zarejestrowani
Postów: 17
Pomógł: 1
Dołączył: 18.12.2009

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


Ok. Temat do zamknięcia. Problem już rozwiązany.

Ten post edytował matis95 29.10.2010, 13:39:15
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 Aktualny czas: 21.08.2025 - 06:31