wdrożenia PrestaShop

Konfiguracja przyjaznych URL

  • 2 Odpowiedzi
  • 8591 Wyświetleń

0 użytkowników i 1 Gość przegląda ten wątek.

*

Offline max-com

  • Nowy
  • *
  • 1
  • 0
Konfiguracja przyjaznych URL
« dnia: Listopad 28, 2010, 07:06:42 pm »
Witam,

Nie bardzo podoba mi się standardowa konfiguracja przyjaznych linków jaką dysponuje presta.

Standardowo przyjazny link wygląda tak:

dla kategorii: http://adres_sklepu.pl/10-oprogramowanie
dla produktu: http://adres_sklepu.pl/10-program.html

Poprawcie mnie ale przyjazne linki powinny być przyjazne przede wszystkim dla użytkownika.
Adres powinien być PROSTY = przyjazny = łatwy do zapamiętania.

Te cyferki (domyślam się że to numer kategorii / produktu) z przyjaznością i prostotą nic wspólnego nie mają. Owszem taki "przyjazny" adres troszkę podniesie pozycję w wyszukiwarce bo w adresie strony znajdą się słowa kluczowe, ale przeciętny Kowalski nie zapamięta tak łatwo adresu który będzie miał przed nazwą kategorii lub produktu w adresie jakieś cyferki.

Jak to uprościć?
Z pewnością się da (w końcu strony stworzone na innym oprogramowaniu to robią), ale pytanie jak to zrobić żeby presta działała poprawnie?

Sam kombinowałem z plikiem .htacces ale tylko wywaliło mi to w kosmos cały sklep.

Oryginalny plik generowany przez presta:
# URL rewriting rules
RewriteRule ^([a-z0-9]+)\-([a-z0-9]+)(\-[_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ /img/p/$1-$2$3.jpg [L,E]
RewriteRule ^([0-9]+)\-([0-9]+)/([_a-zA-Z0-9-]*)\.jpg$ /img/p/$1-$2.jpg [L,E]
RewriteRule ^([0-9]+)(\-[_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ /img/c/$1$2.jpg [L,E]
RewriteRule ^lang-([a-z]{2})/([a-zA-Z0-9-]*)/([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ /product.php?id_product=$3&isolang=$1$5 [L,E]
RewriteRule ^lang-([a-z]{2})/([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ /product.php?id_product=$2&isolang=$1$4 [L,E]
RewriteRule ^lang-([a-z]{2})/([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ /category.php?id_category=$2&isolang=$1 [QSA,L,E]
RewriteRule ^([a-zA-Z0-9-]*)/([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ /product.php?id_product=$2$4 [L,E]
RewriteRule ^([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ /product.php?id_product=$1$3 [L,E]
RewriteRule ^([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ /category.php?id_category=$1 [QSA,L,E]
RewriteRule ^content/([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ /cms.php?id_cms=$1 [QSA,L,E]
RewriteRule ^([0-9]+)__([a-zA-Z0-9-]*)(.*)$ /supplier.php?id_supplier=$1$3 [QSA,L,E]
RewriteRule ^([0-9]+)_([a-zA-Z0-9-]*)(.*)$ /manufacturer.php?id_manufacturer=$1$3 [QSA,L,E]
RewriteRule ^lang-([a-z]{2})/(.*)$ /$2?isolang=$1 [QSA,L,E]

Po moich modyfikacjach:
# URL rewriting rules
RewriteRule ^([a-z0-9]+)\-([a-z0-9]+)(\-[_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ /img/p/$1-$2$3.jpg [L,E]
RewriteRule ^([0-9]+)\-([0-9]+)/([_a-zA-Z0-9-]*)\.jpg$ /img/p/$1-$2.jpg [L,E]
RewriteRule ^([0-9]+)(\-[_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.jpg$ /img/c/$1$2.jpg [L,E]
RewriteRule ^lang-([a-z]{2})/([a-zA-Z0-9-]*)/([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ /product.php?id_product=$3&isolang=$1$5 [L,E]
RewriteRule ^lang-([a-z]{2})/([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ /product.php?id_product=$2&isolang=$1$4 [L,E]
RewriteRule ^lang-([a-z]{2})/([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ /category.php?id_category=$2&isolang=$1 [QSA,L,E]
RewriteRule ^([a-zA-Z0-9-]*)/([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ /product.php?id_product=$2$4 [L,E]
RewriteRule ^([a-zA-Z0-9-]*)\.html(.*)$ /product.php?id_product=$1$3 [L,E]
RewriteRule ^([a-zA-Z0-9-]*)(.*)$ /category.php?id_category=$1 [QSA,L,E]
RewriteRule ^content/([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ /cms.php?id_cms=$1 [QSA,L,E]
RewriteRule ^([0-9]+)__([a-zA-Z0-9-]*)(.*)$ /supplier.php?id_supplier=$1$3 [QSA,L,E]
RewriteRule ^([0-9]+)_([a-zA-Z0-9-]*)(.*)$ /manufacturer.php?id_manufacturer=$1$3 [QSA,L,E]
RewriteRule ^lang-([a-z]{2})/(.*)$ /$2?isolang=$1 [QSA,L,E]


W wersji skróconej...
Ten oryginalny wpis:
RewriteRule ^([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ /product.php?id_product=$1$3 [L,E]
RewriteRule ^([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ /category.php?id_category=$1 [QSA,L,E]

Zmieniłem na:
RewriteRule ^([a-zA-Z0-9-]*)\.html(.*)$ /product.php?id_product=$1$3 [L,E]
RewriteRule ^([a-zA-Z0-9-]*)(.*)$ /category.php?id_category=$1 [QSA,L,E]

Robiłem to oczywiście "na oko"... na zasadzie "tak mi pasuje" :-) Bo kombinować lubię sam :-)
Jednak efektem tego było totalne wysypanie się serwisu od strony admina i usera...

Przerabiał już ktoś te "przyjazne linki" na naprawdę przyjazne bez tych cyferek przed nazwami produktów i kategorii?

*

Offline petras

  • Użytkownik
  • **
  • 23
  • 0
  • Płeć: Mężczyzna
    • PETRAS - strony internetowe, druk, reklama
Odp: Konfiguracja przyjaznych URL
« Odpowiedź #1 dnia: Listopad 30, 2010, 10:16:13 am »
Nie ma możliwości usunięcia tych cyferek. To są numery ID produktów i kategorii.
Jeżeli ich nie będzie to w jaki sposób PrestaShop ma wiedzieć która kategorię lub produkt chcemy jeżeli mają takie same nazwy? Ja np w każdej kategorii mam podkategorię "Inne".
Wszędzie są identyfikacje po numerze ID, czy to allegro.pl, youtube.pl, wykop.pl, demotywatory.pl czy nawet to forum :-) Aby była identyfikacja po nazwie, musiały by być unikalne.
Tworzenie grafiki i wdrożenia sklepów PrestaShop - www.petras.pl

*

Podemski

  • Gość
Odp: Konfiguracja przyjaznych URL
« Odpowiedź #2 dnia: Grudzień 02, 2010, 09:03:18 am »
Jeśli chcesz mieć taką składnie url'i musisz sporo zmienić w silniku Presty.

Musisz edytować .htaccess by nie było tych cyfr, a parametrem który będzie przesyłany był $_GET['seo_url'] - to proste
Dodać pole do bazy o nazwie np. seo_link
Potem edytować wszystkie próby wyciągania produktów z Presty tak by nie wyciągał WHERE id = ileś tylko WHERE seo_link = link. Pole seo_link musi mieć założony index tak by zawsze było unikalne.

Ogólnie rzecz biorąc troszkę roboty jest.