- Jesteś tutaj: Portal -> Artykuły -> Tworzenie stron -> [.htaccess] PHP i ładne linki
Wykonamy strony dla firm, osób prywatnych, klubów sportowych, itp. Od prostej wizytówki dla firmy, przez hobbystyczny wortal po bardziej skomplikowane portale, choćby społecznościowe. Oferumy również wykonanie profesjonalnej grafiki. Kontakt gg: 6025719, email: lukiradom@gmail.com. Portfolio: freelancemedia.pl.
[.htaccess] PHP i ładne linki
Pisząc aplikację w PHP używamy odbierania danych z adresu metodą GET. Wyszukiwarki internetowe
"nie przepadajÄ…" za linkami typu http://mojastronka.pl/artykul.php?kat=news&id=1 no i
trudniej je zapamiętać. Z pomocą przychodzi nam .htaccess, w którym możemy wprowadzać reguły przepisywania
linków. Np. :
Nasz nieładny link:
http://mojastronka.pl/artykul.php?kat=news&id=1&czytaj=wszystko
Możemy zamienić na:
http://mojastronka.pl/artykul/news/1/
lub:
http://mojastronka.plartykul-news-1.html
Nie musimy tworzyć żadnych katalogów ani plików .html, .htaccess "oszuka" nasz skrypt i wprowadzi mu odpowiednie dane. W tym celu tworzymy regułę w pliku .htaccess:
Zajmiemy się przykładem: http://mojastronka.pl/artykul-news-1.html
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?mojastronka.pl$ [NC]
RewriteRule ^artykul-([a-z0-9._]+)-([^-]+).html$ artykul.php?kat=$1&id=$2 [L]
W pierwszej linijce aktywujemy silnik MOD_REWRITE, w drugiej zaÅ› podajemy adres naszej strony (z www i bez), a w trzeciej
podajemy regułę przepisywania. Schemat jest prosty:
RewriteRule ^adres_jaki_bedzie_wpisany$ adres_jakiego_uzywalismy [L]
Adres jaki będziemy wprowadzać:
^artykul-([a-z0-9._]+)-([^-]+).html$
artykul-[znaki od a do z oraz cyfry i znak podkreślenia "_"]-[cyfry].html
Skrypt przyjmie to jako:
http://mojastronka.pl/artykul.php?kat=kategoria&id=numer_w_bazie
Następna reguła będzie przekierowywać adres:
http://mojastronka.pl/artykul/news/1/
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?mojastronka.pl$ [NC]
RewriteRule ^artykul/([a-z0-9._]+)/([^-]+)/$ artykul.php?kat=$1&id=$2 [L]
Czyli:
RewriteRule ^artykul/[litery_cyfry_oraz_znak_podkreslenia]/[cyfry]/$
A więc, jeśli teraz wpiszemy w przeglądarce:
http://mojastronka.pl/artykul/news/1/
będzie to równoznaczne z wpisaniem:
http://mojastronka.pl/artykul.php?kat=news&id=1
UWAGA!!!
Podczas użycia powyższego przykładu możecie napotkać problemy, gdyż serwer będzie myślał, że znajdujecie
się w katalogu /artykul/news/1/ co może powodować problemy z obrazkami, linkami, plikami .css oraz .js. Dlaczego?
Otóż często podajecie url do załóżmy obrazka: obrazki/logo.jpg. Gdy będziecie pod adresem http://mojastronka.pl/artykul/news/1/
przeglądarka będzie próbowała wyświetlić obrazek z katalogu /artykul/news/1/obrazki/logo.jpg, który NIE ISTNIEJE! Tak więc,
aby temu zapobiec, w kodzie należy zmienić scieżkę z "obrazki/logo.jpg" na "/obrazki/logo.jpg", czyli aby szukał folderu obrazki
w katalogu głównym "/".
luki, [06.11.2009 20:37] Czytań: 732
Zaloguj się, aby komentować artykuły.
Brak komentarzy.
- Jesteś tutaj: Portal -> Artykuły -> Tworzenie stron -> [.htaccess] PHP i ładne linki
[.htaccess] PHP i ładne linki
Pisząc aplikację w PHP używamy odbierania danych z adresu metodą GET. Wyszukiwarki internetowe "nie przepadają" za linkami typu http://mojastronka.pl/artykul.php?kat=news&id=1 no i trudniej je zapamiętać. Z pomocą przychodzi nam .htaccess, w którym możemy wprowadzać reguły przepisywania linków. Np. :
Nasz nieładny link:
http://mojastronka.pl/artykul.php?kat=news&id=1&czytaj=wszystko
Możemy zamienić na:
http://mojastronka.pl/artykul/news/1/
lub:
http://mojastronka.plartykul-news-1.html
Nie musimy tworzyć żadnych katalogów ani plików .html, .htaccess "oszuka" nasz skrypt i wprowadzi mu odpowiednie dane. W tym celu tworzymy regułę w pliku .htaccess:
Zajmiemy się przykładem: http://mojastronka.pl/artykul-news-1.html
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?mojastronka.pl$ [NC]
RewriteRule ^artykul-([a-z0-9._]+)-([^-]+).html$ artykul.php?kat=$1&id=$2 [L]
W pierwszej linijce aktywujemy silnik MOD_REWRITE, w drugiej zaś podajemy adres naszej strony (z www i bez), a w trzeciej podajemy regułę przepisywania. Schemat jest prosty:
RewriteRule ^adres_jaki_bedzie_wpisany$ adres_jakiego_uzywalismy [L]
Adres jaki będziemy wprowadzać: ^artykul-([a-z0-9._]+)-([^-]+).html$
artykul-[znaki od a do z oraz cyfry i znak podkreślenia "_"]-[cyfry].html
Skrypt przyjmie to jako:
http://mojastronka.pl/artykul.php?kat=kategoria&id=numer_w_bazie
Następna reguła będzie przekierowywać adres:
http://mojastronka.pl/artykul/news/1/
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?mojastronka.pl$ [NC]
RewriteRule ^artykul/([a-z0-9._]+)/([^-]+)/$ artykul.php?kat=$1&id=$2 [L]
Czyli: RewriteRule ^artykul/[litery_cyfry_oraz_znak_podkreslenia]/[cyfry]/$
A więc, jeśli teraz wpiszemy w przeglądarce:
http://mojastronka.pl/artykul/news/1/
będzie to równoznaczne z wpisaniem:
http://mojastronka.pl/artykul.php?kat=news&id=1
UWAGA!!!
Podczas użycia powyższego przykładu możecie napotkać problemy, gdyż serwer będzie myślał, że znajdujecie się w katalogu /artykul/news/1/ co może powodować problemy z obrazkami, linkami, plikami .css oraz .js. Dlaczego? Otóż często podajecie url do załóżmy obrazka: obrazki/logo.jpg. Gdy będziecie pod adresem http://mojastronka.pl/artykul/news/1/ przeglądarka będzie próbowała wyświetlić obrazek z katalogu /artykul/news/1/obrazki/logo.jpg, który NIE ISTNIEJE! Tak więc, aby temu zapobiec, w kodzie należy zmienić scieżkę z "obrazki/logo.jpg" na "/obrazki/logo.jpg", czyli aby szukał folderu obrazki w katalogu głównym "/".
luki, [06.11.2009 20:37] Czytań: 732
Zaloguj się, aby komentować artykuły.
Brak komentarzy.




