Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MOD REWRITE]Przepisywanie adresów
Forum PHP.pl > Forum > Przedszkole
axwell
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
Wieviór
Kod
RewriteEngine on
RewriteRule ^artykul-([a-zA-Z]+)-([a-zA-Z]+).html$ czytaj.php?sdzial=$1&dzial=$2
RewriteRule ^artykul-([a-zA-Z]+)-([a-zA-Z]+)-([0-9]+)-([0-9]+).html$ czytaj.php?sdzial=$1&dzial=$2&dl=$3&nr=$4


Po pierwsze brawo za decyzję, bo przyjazne URL to dobra rzecz ;] Jako że użytkownik nie będzie widział tych wszystkich nazw zmiennych (sdzial, dzial, dl, nr) to proponuję je rozszerzyć, by było łatwiej zrozumieć o co chodzi.
Pitter
Wydaje mi się że powinno to wyglądać tak chociaż nie zapewniam że będzie elegancko działać bo sam dobrze nie umiem jednak może chociaż cię na prowadzę
Kod
RewriteEngine on
RewriteRule ^article-([a-bA-Z]+)-([a-bA-Z]+)-([1-9])-([1-9])$ plik.php?sdzial=$1&dzial=$2&dl=$3&nr=$4
axwell
No Panowie, niestety ale działa tylko w 50 % ponieważ:
-w zmiennych sdzial, dzial szuka tylko tekstu, a w mojej zmiennej może być jakaś cyfra np. "rok2006"
-tak jak nadmieniłem $dl i $nr nie muszę istnieć. Więc taki adres url: "artykul-jeden-dwa.html" już nie zadziała...
Wieviór
Za cyfry odpowiedzialny jest "0-9", chociaż w tym momencie to już w sumie lepiej chyba dać gwiazdkę po prostu (gwiazdka pozwala na wszelakie znaki).

Jeśli chodzi o drugi Twój punkt - Czy dałeś obie linijki, które ja podałem?
Pilsener
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.
axwell
wszystko ok, przepisuje te strony, które tego wymagają. Kiedyś miałem portal w zwykłym htmlu. Najśmieszniejsze jest to, że nie miałem jeszcze pojęcia wtedy o pozycjonowaniu, wpływaniu tytułów, słów kluczowych na google, a mimo to w niespełna 2 miesiące strona pojawiła się na pierwszych miejscach. Zachęciło mnie to do dalszej pracy i zbudowałem wszystko w PHP. Moje zaskoczenie było bardzo wielkie, gdy z czasem pozycja strony zaczęła spadać. Wtedy to zacząłem się interesować elementami wpływającymi na wyszukiwarkę google. Mam nadzieję, że ten zabieg pomorze przywrócić dobrą passę portalu:)

@Pilsener
Twoja rada jest ciekawa ale aż tak skomplikowanych adresów nie mam, żebym musiał ją stosować smile.gif przykładowy link z mojej strony wygląda teraz: ' artykul-pomocne-cwiczenia,1.html ' więc zostawie tak jak jest smile.gif myślę, że przyda mi się jednak w nowych serwisach, które mam zamiar niedługo zacząć robić. Dzięki wszystkim i pozdr smile.gif
erix
Cytat
zabieg pomorze przywrócić dobrą passę portalu:)

Wiesz, Google może wyżej wyświetlać linki, które nie mają tzw. przyjaznych adresów. SEO jest pojęciem szerokim, lepiej byłoby się IMHO skupić na treści, samej budowie strony.

Bo jeśli chodzi o rodzaje URL-i, to na blogu google było już opisywane: http://feedproxy.google.com/~r/blogspot/am...tatic-urls.html
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.