Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> htaccess - pytanie odnośnie mod rewrite
frydry
post 6.08.2015, 15:57:02
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 2.04.2015

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


Witam.
Tworzę stronę, na której będą występować linki w takiej postaci - strona.pl/index.php?page=strona&category=kategoria&product=1
Utworzyłem regułę w .htaccess:
  1. RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)?$ index.php?page=$1&category=$2&product=$3

Więc przykładowy link będzie teraz wyglądał tak: strona.pl/strona/kategoria/1, a chciałbym, żeby zamiast id produktu w linku była jego nazwa czyli musiałbym utworzyć kilkadziesiąt linii na taki wzór:
  1. RewriteRule ^strona/kategoria/nazwa_produktu?$ index.php?page=strona&category=kategoria&product=1

I teraz moje pytanie. Czy wpłynie to znacznie na optymalność strony i jej szybsze funkcjonowanie ?
I czy w ogóle jest sens tworzenia takich linków i czy byłyby one poprawne z polskimi znakami?
Czytałem, że linki dużo wpływają na pozycjonowanie, więc opłacalne by to było?
Pozdrawiam i czekam na odpowiedź.

Ten post edytował frydry 6.08.2015, 15:57:31
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
kapslokk
post 7.08.2015, 09:17:48
Post #2





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

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


Bez sensu jest to robić w htaccessie. Tzn w takiej formie jak Ty chcesz to zrobić. Poczytaj sobie co to jest slug. Ewentualnie pomyśl o linku w stylu:
strona/kategoria/1-nazwa_produktu gdzie id będziesz miał przekazywane zawsze na poczatku.

Ten post edytował kapslokk 7.08.2015, 09:18:08
Go to the top of the page
+Quote Post
frydry
post 7.08.2015, 14:28:05
Post #3





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 2.04.2015

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


Niestety nie mogę nigdzie znaleźć jakieś chociażby poradnika po polsku, znalazłem parę po angielsku, ale chciałbym dobrze zrozumieć to. Pozostaje mi więc zostać przy htaccess :/
Go to the top of the page
+Quote Post
kapslokk
post 8.08.2015, 14:14:07
Post #4





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

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


Ale czego nie rozumiesz w tym poradniku? Slug to po prostu np. tytuł strony, obrobiony tak, żeby nie było w nim znaków specjalnych, spacji czy ogonków. Zapisujesz go do bazy w unikalnym polu, aby nie dało się go zdublować i wtedy zamiast podawać id podajesz unikalny slug. Druga opcja ta z id-jakis tekst, nie wymaga od Ciebie nawet tej unikalności bo strony będą rozróżniane przez id. Kwestia tego, żeby napisać odpowiednie przekierowanie w htaccesie, ale jedno a nie tyle ile masz stron.

Ten post edytował kapslokk 8.08.2015, 14:14:36
Go to the top of the page
+Quote Post
frydry
post 15.08.2015, 14:44:18
Post #5





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 2.04.2015

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


Cytat(kapslokk @ 8.08.2015, 15:14:07 ) *
Ale czego nie rozumiesz w tym poradniku? Slug to po prostu np. tytuł strony, obrobiony tak, żeby nie było w nim znaków specjalnych, spacji czy ogonków. Zapisujesz go do bazy w unikalnym polu, aby nie dało się go zdublować i wtedy zamiast podawać id podajesz unikalny slug. Druga opcja ta z id-jakis tekst, nie wymaga od Ciebie nawet tej unikalności bo strony będą rozróżniane przez id. Kwestia tego, żeby napisać odpowiednie przekierowanie w htaccesie, ale jedno a nie tyle ile masz stron.

Niestety nie mam pojęcia jak to zrobić, ponieważ nie znam wyrażeń regularnych htaccess. Przetwarzanie tekstu na sług już ogarnąłem, ale nie mam pojęcia jak to zastosować, aby otrzymać link w takiej postaci jak napisałeś, aby wystarczała do tego tylko jedna linijka w htaccess tiredsmiley.gif
Bo nie mam problemu z utworzeniem linku slug, tylko z tym, jak pobrać dane id w htaccess kiedy link by wygłądał np. tak: strona.pl/strona/kategoria/1-nazwa_produktu

//EDIT
Poradziłem sobie, dostałem natchnienia, pokombinowałem i chyba wykombinowałem haha.gif
Jakby ktoś jeszcze miał problemy zrobiłem funkcję która za pomocą explode oddziela w zmiennej product id od reszty:
  1. function product_page_id() {
  2. $all = $_GET['product'];
  3. $exp = explode("-", $all);
  4. return $exp[0];
  5. }

i wszędzie gdzie jest wykorzystuje id produktu wstawiłem tę funckję, a w htaccess dałem taką linjkę:
  1. RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)-([^/\.]+)?$ index.php?page=$1&category=$2&product=$3-$4


Jeśli coś było nie tak, lub mój pomyśl jest beznadziejny, to proszę o info. shades.gif

Ten post edytował frydry 15.08.2015, 14:44:36
Go to the top of the page
+Quote Post

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 - 06:04