Po kilku nieudanych próbach importu zostałem obciążony przepisem adresów URL, które muszę usunąć.
Używam Enterprise 1.13
Kiedy miałem ten problem w społeczności, po prostu core_url_rewrite
obciąłem i ponownie zindeksowałem.
Jednak w Enterprise zauważam, że istnieje wiele różnych tabel kontrolujących przepisywanie.
enterprise_url_rewrite
enterprise_url_rewrite_category_cl
enterprise_url_rewrite_product_cl
enterprise_url_rewrite_redirect
enterprise_url_rewrite_redirect_cl
enterprise_url_rewrite_redirect_rewrite
Czy mogę bezpiecznie obciąć je wszystkie?
W pełni oczekuję, że ktoś powie mi, że nigdy nie powinienem obcinać tych tabel, więc z góry przepraszam za naiwność.
magento-enterprise
url-rewrite
ee-1.13
JamesAllwood
źródło
źródło
core_url_rewrite
i zadziałało.Odpowiedzi:
Jesteśmy w podobnej sytuacji jak ty James. Po wielu kopaniach wpadłem na to:
core_url_rewrite
Tabela jest obecnie przestarzała, zamiast Magento EE 1,13 teraz przechowuje przepisuje sięenterprise_url_rewrite
.Tabele:
enterprise_*_category_rewrite
użyjcatalog_*_entity_url_key
tabel do przebudowania dwóch tabel przepisywania po uruchomieniuphp indexer.php --reindex catalog_url_*
Gdy dodasz „Przekierowanie URL” w katalogu Administrator-> Przekierowania URL dla niestandardowego adresu URL, zostanie on dodany do
enterprise_url_rewrite_redirect
tabeli, a flaga Magento informująca o tym, że indeks jest już nieaktualny, zostanie wprowadzona doenterprise_url_rewrite_redirect_cl
tabeli, która po uruchomieniuphp indexer.php --reindex url_redirect
odbudujeenterprise_url_rewrite_redirect_rewrite
tabelę.Szybka uwaga, każda tabela z rozszerzeniem _cl jest bezpieczna do obcięcia, „CL” oznacza Dziennik zmian i jest używany przez Magento do sprawdzenia, czy wymagana jest ponowna indeksacja.
Jeśli chodzi o tabele kluczy URL, wciąż jestem trochę nieświadomy, dlaczego istnieją dwa wpisy klucza URL jeden do
catalog_*_entity_url_key
jednego i jeden docatalog_*_entity_varchar
(identyfikator atrybutu 90), ale zakładam, że tak się dzieje:Podczas tworzenia nowego produktu / kategoria Magento używa nazwy wygenerować url_key który jest umieszczony w
catalog_*_entity_url_key
awcatalog_*_entity_varchar
, ale podstawowa tabela wykorzystywane przez Magento jestcatalog_*_entity_url_key
bo jeśli obciąć go i uruchomićphp indexer.php --reindex catalog_url_*
Twojeenterprise_*_category_rewrite
tabele będzie pusta i produkty / Kategorie frontend wyświetli brzydkie adresy URL, tj.http://example.com/catalog/product/view/id/123/etc/etc
(nieprzyjazne dla SOE) Wierzę, że dwie tabele są ze sobą powiązane i są używane do budowaniaenterprise_url_rewrite
tabeli, ponieważ ta tabela przechowuje „ścieżkę_poprawki” najprawdopodobniej wewnątrzcatalog_*_entity_varchar
tabeli i „identyfikator”, który jest podstawowym Klucz URL zcatalog_*_entity_url_key
tabeli. Mogę się całkowicie mylić co do tabel url_key i varchar, więc po prostu myślę na głos.W każdym razie, aby pomyślnie obciąć i przebudować wszystkie tabele przepisywania, które możesz wykonać:
a następnie uruchom:
Jeśli również obetniesz,
enterprise_url_rewrite_redirect
stracisz wszystkie niestandardowe przekierowania, które widzisz w panelu administracyjnym, być może jest to twój cel, ponieważ masz mnóstwo niepotrzebnych adresów URL. Dopóki NIE obetniesz tabel „* _entity_url_key”, nic ci nie będzie.Nasza historia była nieco inna, ponieważ mieliśmy zduplikowane klucze URL i poważne problemy z nazwami produktów z importu Excela po aktualizacji do 1.13 z 1.11, więc napisałem ten szybki skrypt, aby zresetować
catalog_product_entity_url_key
tabelę oraz klucze URL i ścieżki URL wcatalog_product_entity_varchar
tabeli za pomocą produktu nazwy. Załączam poniższy kod, ale jeśli go użyjesz, użyj go na własne ryzyko.Kod można zmodyfikować, aby używał metody Magentos formatKey tutaj: http://www.magentocommerce.com/wiki/3_-_store_setup_and_management/seo/url_key_characters_conversion niestety natrafiłem na wiki po zaktualizowaniu wszystkich kluczy, więc nie zawracałem sobie głowy ponowną aktualizacją wszystko znowu.
Mam nadzieję, że to pomoże :)!
źródło
sudo php indexer.php --reindex catalog_url_catalog
powinno byćsudo php indexer.php --reindex catalog_url_category
.catalog/product/view/id/XXX/category/YYY
. Czy możesz potwierdzić, że to samo dotyczy Ciebie? Nie mam pojęcia o tym ... Czy to błąd, czy robię coś złego? Próbowałem zrobić to samo na świeżej instalacji 1.13.0.2, to samo się stało. Rewrites działa poprawnie w interfejsie użytkownika, ale żadna kategoria nie jest ustawiona.W oparciu o to, co widziałem, gdy bawię się w EE 1.13 w środowisku testowym i krótkie testy, które właśnie wykonałem, powinieneś być w stanie obciąć te tabele, a następnie ręcznie odbudować wszystkie indeksy URL z CLI.
Tabele * _cl są używane w TRIGGERS znalezionych w
catalog_product_entity_url_key
tabeli. Rekordy, które wstawiają do tabeli * _cl są, jak sądzę, używane do wskazania, co należy ponownie zindeksować po zapisach.Oto co zrobiłem. Po użyciu narzędzia CLI do odbudowania indeksów wszystko wyglądało na dobre. Obcinanie MySql…
Następnie na CLI…
Poinformuj nas o swoich wynikach ... tak jak Marius, jeszcze nie zbudowałem strony EE 1.13 i mam tylko doświadczenie w tym, że można się nią bawić od Imagine. :)
źródło
enterprise_url_rewrite
porównaniu zcore_url_rewrite
poprzednimi wersjami. Tecatalog_*_entity_url_key
tabele wydają się być replikowane tabela z URL kluczy do wykorzystania przez indekser, a są też stoliki z wyzwalaczy związanych z przepisuje URL.Uwaga dotycząca używania TRUNCATE:
daje błąd z powodu odwołania do klucza obcego:
Uruchamianie poleceń obcinania / usuwania w ten sposób działałoby:
źródło
SET FOREIGN_KEY_CHECKS = 0;
przedTRUNCATE ...
iSET FOREIGN_KEY_CHECKS = 1;
na samym dole, poDELETE FROM ...
Odpowiedź jest prosta: No to nie jest bezpieczne, aby obciąć te tabele, przynajmniej jeśli nie znają konsekwencje:
Jednak:
Catalog -> Url Redirect
będzie pusty (na EE 1.13.1)(który wygląda jak błądwedług Magento, takie jest oczekiwane zachowanie na 1.13.1) (patrz również komentarz poniżej)źródło
Catalog -> Url Redirect
pokazuje tylko przepisywanie niesystemowe. Wyświetlane będą tutaj tylko niestandardowe przepisywania. tzn. wiersze zenterprise_url_rewrite.system = 0
.