Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Przyjazne linki + dodatkowe zmienne - mod_rewrite
new
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 22.09.2010

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


Witam wszystkich

jestem tu początkujący i mam takie pytanie:

jak oprogramować w PHP i .htaccess obsługę przyjaznych linków, tak aby część zmiennych obsługiwała adres podstrony a część dodatkowe zmienne:

Przykładowo:
  1. strona.pl?adres1=wodne&adres2=kajaki&alert=1&info=2
  2. strona.pl/wodne/kajaki/alert/1/info/2/

chcę żeby skrypt zainkludował podstronę /wodne/kajaki.php
i na tej podstronie obsłużył zmienne $_GET['alert'] i $_GET['info']

jest kilka poziomów podstron np:
  1. strona.pl/wodne/alert/1/info/2/ //(/wodne.php)
  2. strona.pl/wodne/kajaki/niebieskie/alert/1/info/2/ //(/wodne/kajaki/niebieskie.php)


Proszę o pomoc
Go to the top of the page
+Quote Post
jcubic
post
Post #2





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 5.07.2010
Skąd: Bliżyn

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


W pliku .htaccesss wstaw

Kod
RewriteEngine on
RewriteRule ^/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/ ?adres1=$1&adres2=$2&alert=$3&info=$4 [R=302]


a jeśli chcesz użyć jakieś innego skryptu w pliku index.php (albo innego standardowego pliku jaki masz ustawiony) po prostu używasz
Kod
require('wodne/kajaki.php');

Go to the top of the page
+Quote Post
new
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 22.09.2010

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


Do tego doszedłem, ale nie wiem jak obsłużyć PHP różną interpretację linków z tą samą ilością zmiennych np:
1) strona.pl/wodne/alert/1/
2) strona.pl/wodne/kajaki/niebieskie/

1) wykonuje include('wodne.php'); ze zmienną $_GET['alert']=1
2) wykonuje include('/wodne/kajaki/niebieskie.php');

Czy da się to wogóle jakoś obsłużyć?

Proszę o pomoc
Go to the top of the page
+Quote Post
franki01
post
Post #4





Grupa: Zarejestrowani
Postów: 508
Pomógł: 75
Dołączył: 2.11.2005
Skąd: Bydgoszcz

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


  1. $realpath = str_replace('/', '', $_SERVER['REQUEST_URI']); # pierwszy argument to katalog w URLu, w którym znajduje się strona
  2. $urlvars = array_filter(explode('/', $realpath));


W $urlvars będziesz miał tablicę tych zmiennych, które przekazujesz przez URL. Tablica będzie indeksowana po kolei od 0.

Np. dla http://domena.pl/strona/costam/innego/ $urlvars będzie zawierała [0] => 'strona', [1] => 'costam', [2] => 'innego'.
Na podstawie $urlvars możesz robić co chcesz.

W .htaccess przekierowujesz wszystko przez:
Kod
RewriteEngine On
RewriteRule .* index.php


W katalogu ze stroną robisz katalog /static/, w który wrzucasz wszystkie pliki dostępne dla użytkownika (css, obrazki, .js). Bezpośrednio w katalogu /static/ robisz plik .htaccess o poniższej treści:
Kod
RewriteEngine Off


Przy przyjaznych linkach typu http://domena.pl/zmienna1/zmienna2/zmienna3/ to jest najelastyczniejsza struktura.
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: 20.08.2025 - 14:12