Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przyjazne linki PHP
Forum PHP.pl > Forum > PHP
matis95
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.
Spawnm
szukaj w google: mod_rewrite + przyjazne linki
matis95
Szukałem, ale niestety nic nie znalazłem.
adrianozo
Może ten artykuł pomoże?

http://ownpage.pl/seo/przyjazne-adresy-url...omocy-htaccess/
matis95
W ten sposób otrzymuje adres mojastrona.pl/1.html
a ja chce, żeby zamiast 1 był tytuł newsa z MySQL
Spawnm
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.
gigzorr
chcesz tytul a pobierasz id proste.

spawn , derby?biggrin.gif
drakos
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.
matis95
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.
Mephistofeles
Varchar, i oczywiście pole musi być unikalne, do tego nie może zawierać znaków nieakceptowanych jako URL.
matis95
mam tak:
  1. ("select * from news where adres='".(int)$_GET['adres']."'");

Ale po wejściu na plik.php?adres=wartoscpolaadreswmysql wyświetla się tylko ()
darophp
@erix pisał coś na ten temat winksmiley.jpg
matis95
Ok. Temat do zamknięcia. Problem już rozwiązany.
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.