![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 577 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Szukam dobrego rozwiązania dla przyjaznych linków.
Mam coś ciekawego:
Problem: na moim kompie localhost $_SERVER['PATH_INFO'] nie wyświetla nic. Czym można zastąpić $_SERVER['PATH_INFO'] , aby uzyskać wymarzony (IMG:style_emoticons/default/smile.gif) efekt. Próbuje również z .htaccess , ale nie wiem o co chodzi. W pliku .htaccess zapisałem: RewriteEngine On RewriteBase / RewriteRule ^(.*)-c-([0-9]*).html$ index.php?cat=$1&id=$2 W plikach index.php mam link np. <a href="produkty/super_offers">Oferta</a> i po kliknięciu oczywiście - Błąd 404 strona nie znaleziona. O co chodzi z .htaccess i jak tworzyć linki? A może po prosu, kto napisze (przedstawi) ciekawszy sposób na przyjazne linki . Help me, please. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Wyciągaj z REQUEST_URI. Zależy od konfiguracji.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 577 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuje erix.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
Albo ciśnij po .htaccess:
Kod RewriteBase /
# Rewrite URLs of the form 'x' to the form 'index.php?q=x'. RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] Ten post edytował cojack 23.09.2009, 00:30:10 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 577 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cytat W plikach index.php mam link np. <a href="produkty/super_offers">Oferta</a> i po kliknięciu oczywiście - Błąd 404 strona nie znaleziona. Z REQUEST_URI jest ok. Pozostaje powyższa rzecz jak tworzyć linki na stronie (np. w menu) i jak powinien wyglądać skrypt php, aby po kliknięciu w link o adresie: - produkty/super_offes zamiast np. produkty.php?a=super_offers otwierana była strona produkty.php załaduj super_offes, gdzie na stronie produkty.php może być super_offes, super_offes1, super_offes2, super_offes3 and more... bez komunikatu Bład 404? |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
No to tak, jak napisał ~cojack - wszystkie parametry masz wówczas w $_GET['q']. Trzeba było poczytać kilka tutoriali nt. rewrite'a.
Cytat Pozostaje powyższa rzecz jak tworzyć linki na stronie (np. w menu) http://eriz.pcinside.pl/weblog/mod_rewrite...ac-208.html#t81 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 577 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Czegoś tutaj nie wiem
Na localhost mam katalog, w którym znajduje się projektowany serwis, katalog o nazwie _serwis W pliku . htaccess mam: # PHP Settings RewriteEngine On # RewriteBase / RewriteBase /_serwis RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?a=$1 [L,QSA] Dla strony index.php w katalogu _serwis jest ok, wszystko wyświetla się prawidłowo, teraz z katalogu _serwis/produkty/ jest również plik index.php, który mógłby być plikiem głównym dla katalogu produkty/ z którego za pomocą np. if'ów (switch, case) można byłoby wyświetlić odpowiednie body strony np. dla prokukt1, produkt2 itd., ale tutaj po wpisaniu w pasku przglądarki adresu http://localhost/_serwis/produkty/prokukt1 wyświetla mi stronę główną _serwis/index.php Czy muszę wszystkie adresy (if'y lub switch) umieścić w pliku głównym _serwis/index.php i stąd przekierowywać do katalogu _serwis/produkty/produkt1 i kolejne produkt2, 3, 4, 5... Czy można ustawić wszystko w .htaccess i jak to zrobić, ponieważ coś nie bardzo wiem jak to zrobić, aby było dobrze? |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 231 Pomógł: 22 Dołączył: 6.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
w .htaccess zrób przekierowanie wszystkiego przez index.php
Kod RewriteEngine on RewriteRule .* index.php w index.php zrób funkcję która podzieli ci zapytanie np jesli przychodzi zapytanie http://domena/dzial/typ/produkt to wykonuje odpowiednie funkcje |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 577 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Pierwszy raz robiłem coć z .htaccess i stwierdziłem - trzeba się przejść.
Przyszedłem i wymyśliłem, że plik .htaccess umieszczam w każdym katalogu do którego prowadzą przyjazne linki z odpowiednim RewriteRule i działa dobrze, tzn. mam ładne linki and no problem with my website. Mam tylko jeszcze jedno pytanie do .htaccess (przyjazne linki). Czy wymienione rozwiązanie jest dobre? |
|
|
![]()
Post
#10
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Przyszedłem i wymyśliłem, że plik .htaccess umieszczam w każdym katalogu do którego prowadzą przyjazne linki z odpowiednim RewriteRule i działa dobrze, tzn. mam ładne linki and no problem with my website. A gdybyś miał kilkadziesiąt działów? (IMG:style_emoticons/default/tongue.gif) Cytat Czy wymienione rozwiązanie jest dobre? Zależy. Przy większych aplikacjach - tak - masz dynamiczny routing. Przy prostych stronach - nie ma sensu, niepotrzebne są w większości jakieś zaawansowane routery. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 577 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Pojawił się inny problem, dotyczący zmiennych w ładnych linkach
Otórz mam adres: http://localhost/_serwis/produkty/oferta,1 bez końcówki ,1 działa znakomicie, ale jeżeli potrzebuję przekazać nie jedną, a kilka zmiennych wartość po ostatnim slesh oferta,1 traktowana jest jak zmienna pierwsza i jedyna, a potrzebuję aby oferta - było zmienną pierwszą , 1 - zmienną drugą i potrzebne będą kolejne zmienne np. /oferta,wartosc1,wartosc2,wartosc3 . .htacces wyglada tak: # PHP Settings RewriteEngine On RewriteBase /_serwis/produkty RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*) index.php?oferta=$1 [L,QSA] # jak dodac kolejne zmienne... &b=$2&c=$3&d=4 Help (IMG:style_emoticons/default/sciana.gif) |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 100 Pomógł: 1 Dołączył: 17.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
dam Ci przykład:
RewriteRule ^Home-([^-]*)-([^-]*)-([^-]*).html$ index.php?id=$1&cmd=$2&page=$3 Ten post edytował Reiven 23.09.2009, 19:51:30 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 577 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cytat dam Ci przykład: Takich i podobnych przykładów jest dużo, dla mnie bez opisu znaczą one w zasadzie tyle samo. Próbuję już na różne sposoby i bez efektu Mam plik: # PHP Settings # inicjujemy rewrite engine RewriteEngine On RewriteBase /_serwis/produkty # w tym katalogu mam plik .htaccess RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*) index.php?oferta=$1 [L,QSA] # jak dodac kolejne zmienne... &b=$2&c=$3&d=4 # RewriteRule ([^-]+)/([^-]+).html$ index.php?oferta=$1&js=$2 [L] # RewriteRule ^([0-9])\/([^.]+)\.html$ /index.php?oferta=$1&js=$2 [L] # RewriteRule ^Home-([^-]*)-([^-]*)-([^-]*).html$ index.php?oferta=$1&js=$2&c=$3 [L,QSA] # RewriteRule ^strona/([^/.]+)/?$ index.php?strona=$1 [L] # RewriteRule ^/([^/.]+)/?$ index.php?strona=$1 [L] Nic z powyższego u mnie nie działa prawidłowo dla kilku zmiennych. Jeżeli koś wie jak z takiego linka: index.php?oferta=produkt&b=1 zrobić ładny link, który będzie działać proszę o pomoc. Ten post edytował Malinaa 23.09.2009, 23:24:17 |
|
|
![]()
Post
#14
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Nic z powyższego u mnie nie działa prawidłowo dla kilku zmiennych. Pokaż przykładowy URL, jakim wywołujesz stronę (z kilkoma zmiennymi). |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 577 Pomógł: 6 Dołączył: 21.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Przykładowy url:
http://localhost/_serwis/produkty/index?of...firma=gamakatsu Po zapisaniu obcieło link, edytuje i powtarzam w takiej formie localhost/_serwis/produkty/index?oferta=haczki&typ=kotwice&firma=gamakatsu Cały serwis znajduje sie w katalogu _serwis/ bezpośredni na localhost mam inną stronę i nie potrafię napisać prawidłowego .htaccess dla strony w katalogu _serwis/ napisałem więc osobny .htaccess dla katalogu _serwis/ i tutaj jest ok, ale dla katalogu produkty/ gdzie mam drugi .htaccess no working? Ten post edytował Malinaa 24.09.2009, 18:09:44 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 28.09.2025 - 01:43 |