Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Przyjazne linki mod_rewrite
Gray
post
Post #1





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 5.04.2010

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


Hej, bawię się przyjaznymi linkami i chciał bym zrozumieć parę rzeczy. Do tej pory link w który należało kliknąć aby zobaczyć obrazek na mojej stronie wyglądał tak:
  1. <a href="obrazek.php?id='.$img['id'].'">


Zrobiłem dla niego taki mod_rewrite:
  1. RewriteRule ^obrazek.html-([^-]+)$ obrazek.php?id=$1 [L]


No i wpisując link np. obrazek.html-12 otwiera mi odpowiedni obrazek. Czy teraz muszę zmienić link w który klika użytkownik na:
  1. <a href="obrazek.html-'.$img['id'].'">


Czy tak należy zrobić? Wtedy użytkownik kopiując link z przeglądarki będzie kopiował przyjazny link.

Inną sprawą jest, że chciał bym mieć przyjazny link w takiej postaci:
obrazek.html/12 lub obrazek.html/12/

Czyli podobny do poprzedniego tylko zamiast myślnika slash, tylko kiedy robię taki mod_Rewrite to wyskakują błędy i strona się źle otwiera :/

Proszę o pomoc i z góry dzięki.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


Cytat
No i wpisując link np. obrazek.html-12 otwiera mi odpowiedni obrazek. Czy teraz muszę zmienić link w który klika użytkownik na...


Tak - w sumie po to się robi przyjazne linki by były one widoczne a samo ich utworzenie działa tylko w jedną stronę "przyjazny => zwykły". Jak widac wejście na dowolny z nich powoduje wyświetlenie obrazka ale porzyjazny ma za zadanie lepiej się prezentować. Samo dodanie regułki do .htaccess nic nie zmieni - należy podmienić linki na stronie.

Cytat
Inną sprawą jest, że chciał bym mieć przyjazny link w takiej postaci:
obrazek.html/12 lub obrazek.html/12/

Czyli podobny do poprzedniego tylko zamiast myślnika slash, tylko kiedy robię taki mod_Rewrite to wyskakują błędy i strona się źle otwiera :/


Wstawiając znaki "/" do adresu nawet w mod-rewrite trzeba liczyć się z faktem że skrypty wyświetlają się dobre owszem ale przeglądarka widzi "/" jako folder.

Załóżmy, że masz plik ze stylami (css) w głównym katalogu serwera www czyli przykładowo www.strona.pl/style.css

Jeśli dodajesz ten plik ze stylami do kodu strony podając link względny jako samą nazwę pliku (czyli : "style.css") to na adresie www.strona.pl/ to zadziała ale na www.strona.pl/folder/ już nie bo przeglądarka będzie szukać tego pliku w www.strona.pl/folder/style.css a tam go nie ma. Browser nie wie czy "/" w linku to foldery czy mod-rewrite - trzeba jej zatem pomóc:

1. Można podawać linki do CSS/JS/obrazków bezwględne - "http://www.strona.pl/style.css" - wtedy to zawsze zadziała
2. Można podawać linki do głównego katalogu serwera www czyli "/style.css"
3. Można podawać linki względne ("style.css") i dodać do HEAD znacznik BASE

  1. <base href="http://www.strona.pl/"/>


HTH (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 17:09