Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Przyjazne linki
Forum PHP.pl > Forum > Przedszkole
wwojteko
Witam!
Mam takie pytanie jak przerobić linki w postaci:
  1. <a href="index.php?id=1">glowna</a>

I w case mam includowane podstrony w zaleznosci od tego jakie jest id:
  1. <?php
  2. switch ($_GET['id'])
  3. {
  4. case '2':
  5. include('glowna.php');
  6. break;
  7. case '3':
  8. include('realizacje.php');
  9. break;
  10. include('start.php');
  11. };
  12. ?>

I teraz pytanie jak to przerobić, żeby w przeglądarce było postaci: www,mojastrona/oferta.html itd. Większośc postów dotyczy linków czytanych z bazy danych. Czy da się taki coś zrobic? I jeszcze jedno czy da się to zrobić tak aby w linku pozostało ?id=2 bo sprawdzając to potem sprawdzam, które zakładka jest aktywna. Ogólnie chodzi o .httacces i mode rewrite dla tego konkretnego przypadku.
Pozdrawiam!
XDocTorX
tak poczytaj o mod_rewrite
wwojteko
Wlasnie o tym czytam, ale jak narazie to wszystkie proby z plikiem .httacces koncza sie tym ze strona przestaje dzialac i serwer wywala rozne bledy. Robilem tak:
  1. <?php
  2. AcceptPathInfo Off
  3. Options +FollowSymLinks -MultiViews
  4. RewriteEngine on
  5. RewriteCond %{REQUEST_FILENAME} -[OR]
  6. RewriteCond %{REQUEST_FILENAME} -d
  7. RewriteRule ^([^./]+).html$ /index.php?id=$2 [L]
  8. ?>

a linki tak:
  1. <?php
  2. <a href="?id=2" title="oferta">oferta</a>
  3. ?>

Ten zapis powoduje błąd serwera a na innym serwerze nic się nie zmienia dalej jest typu mojastrona.pl/index.php?id=2. Ma ktoś może jakiś działający plik .httacces dla takiego przykładu?
erix
Na pewno masz to w .htaccess?

Cytat
i serwer wywala rozne bledy. Robilem tak:

Hmm, masz magiczne fusy ułatwiające wróżenie?

Cytat
I jeszcze jedno czy da się to zrobić tak aby w linku pozostało ?id=2 bo sprawdzając to potem sprawdzam, które zakładka jest aktywna. Ogólnie chodzi o .httacces i mode rewrite dla tego konkretnego przypadku.

No to musisz przekazywać to jakoś w URL-u albo wyciągać dodatkowo z jakiejś tablicy.
Pilsener
Cytat
I w case mam includowane podstrony w zaleznosci od tego jakie jest id
- po co? Zrób sobie tablicę:

ID||Link||Nazwa/Anchor||Title||Coś tam - przechowujesz w bazie lub pliku. Menu generujesz automatycznie na podstawie tablicy a możesz nawet i na podstawie struktury plików czy folderów (wtedy anchor i title = nazwa pliku)

Do zwykłych linków index?id=45 wystarcza, ale do przyjaznych potrzebne są słowa kluczowe (anchor), linki takie mogą mieć postać:
strona.pl/nazwa,id.html

Wtedy reguła w .htaccess wygląda tak:
RewriteRule ([^-]*),([^-]*).html$ ?id=$2 [L] - zadziała, jeśli plik to index.php. Żeby było w pełni elastyczne robisz:

RewriteRule ([^-]*),([^-]*),([^-]*).html$ $3.php?id=$2 [L] wtedy zamieni adres:
strona.pl/nazwa,id,plik.html na strona.pl/plik.php?id=id
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.