Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przyjazne linki + dodatkowe zmienne - mod_rewrite
Forum PHP.pl > Forum > PHP
new
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
jcubic
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');

new
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
franki01
  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.
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.