Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Przyjazne linki, Przerobienie linków na przyjazne
wwojteko
post 17.06.2008, 13:42:36
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 31.10.2007

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


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!
Go to the top of the page
+Quote Post
XDocTorX
post 17.06.2008, 13:48:59
Post #2





Grupa: Zarejestrowani
Postów: 48
Pomógł: 6
Dołączył: 16.07.2006
Skąd: Jarosław

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


tak poczytaj o mod_rewrite
Go to the top of the page
+Quote Post
wwojteko
post 17.06.2008, 15:23:06
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 31.10.2007

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


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?
Go to the top of the page
+Quote Post
erix
post 17.06.2008, 21:14:10
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




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.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Pilsener
post 18.06.2008, 08:30:23
Post #5





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


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
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: 14.06.2025 - 10:12