Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MOD REWRITE]Przepisywanie adresów
axwell
post 20.12.2008, 23:09:58
Post #1





Grupa: Zarejestrowani
Postów: 143
Pomógł: 1
Dołączył: 14.11.2007

Ostrzeżenie: (10%)
X----


Postanowiłem zająć się przyjaznymi URLami na mojej stronie. Mam do przepisania sporą ilość takich zasad, ale nie znam się na tym. Czytałem kilka poradników, tutoriali, lecz nie wychodzi dlatego proszę Was o podanie mi przykładu, a ja już dalej sobie poradzę.

Mam link w formacie
  1. <?php
  2. czytaj.php?sdzial=&dzial=&dl=&nr=
  3. ?>

z tym, że zmienne $dl oraz $nr nie koniecznie muszą wystąpić. Chciałbym mieć link w formacie artykul-$sdzial-$dzial-$dl-$nr.html
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Pilsener
post 21.12.2008, 00:44:16
Post #2





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

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


Musisz zrobić klasyfikację, np:
znak / działy
znak - słowa kluczowe
znak , parametry
znak ; parametry dodatkowe
znak _ nr strony

Masz jeszcze _, adresy buduj w stylu:
kategoria1/kategoria2/slowo1-slowo2,id;id2_nrstrony.html

I nie przepisuj wszystkiego, ja jestem przede wszystkim zwolennikiem prostoty, wrzuć cały adres do jednej zmiennej $_GET a w PHP napisz sobie klasę/funkcję do obróbki tego i wyciągnij wszystko, co jest Ci potrzebne.

Robienie takich reguł:
Kod
RewriteRule ^article-([a-bA-Z]+)-([a-bA-Z]+)-([1-9])-([1-9])$ plik.php?sdzial=$1&


To wiązanie sobie rąk, bo zmienia się zarówno struktura serwisu, jak i nazwy plików. Najlepiej wszystkie adresy wrzucaj do pliku index.php i tam je obrabiaj:
Kod
RewriteRule ([^-]*).html$ ?page=$1 [L]
- ja mam tylko jedną regułę i nie mam takich problemów smile.gif Odbieram sobie zmienną $_GET['page'] i wyciągam wszystko, co jest mi potrzebne.
Go to the top of the page
+Quote Post

Posty w temacie


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.08.2025 - 21:00