Polskie wsparcie PrestaShop
PrestaShop => Konfiguracja => Wątek zaczęty przez: max-com w 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?
-
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.
-
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.