Usuń identyfikator artykułu z adresu URL Joomla 3

9

Próbuję usunąć identyfikator artykułu z adresu URL Joomla 3. Rozejrzałem się i odpowiedź jest gotowa

components\com_content\router.php

zmiana 0do 1IN$advanced = $params->get('sef_advanced_link', 1);

na liniach 38 i 290

i również skomentował

if (strpos($segments[0], ':') === false) {
    $vars['view'] = 'article';
    $vars['id'] = (int)$segments[0];
    return $vars;
}

Uważam, że działa dobrze w Joomla 2.5, ponieważ wszystkie komentarze o tym wspominają.

Ale to nie działa dla mnie na mojej stronie Joomla 3.3.

Jak mogę to osiągnąć bez tworzenia pozycji menu dla każdego artykułu?

knebel
źródło
Czy masz jakiś błąd?
Dmitry Rekun
Po prostu utwórz link do menu dla swojego artykułu.
saibbyweb
Lodder - Tak, dostaję link, który chcę, ale zamiast mojego artykułu mam stronę błędu 404.
knebel
Saibbyweb - Mam ponad 100 artykułów, a liczba ta ma wzrosnąć do 500, więc nie sądzę, że dobrym pomysłem jest stworzenie menu dla nich wszystkich.
knebel
Jeśli rozszerzenie K2 jest dla Ciebie opcją, możesz to osiągnąć naprawdę łatwo. K2 ma opcje zaawansowanego routingu wraz z potrzebnymi opcjami. Możesz zaimportować swoje ekscytujące artykuły do ​​K2. Sprawdź mój blog K2 i wygenerowane linki Readmore. Innym rozwiązaniem jest użycie czegoś takiego jak sh404sef lub youwait dla tego indiegogo.com/projects/advance-the-joomla-url-router/x/7216161
Joomla Agency

Odpowiedzi:

11

Krok 1

Edytuj „components / com_content / router.php”, a następnie przejdź do kroku 2.
(Prawdopodobnie będziesz musiał powtórzyć ten krok przy każdej aktualizacji Joomla.)

Krok 2

(Są dwa miejsca, w których trzeba dokonać tej zmiany, jedno u góry, jedno w środku) Zastąp to:

$advanced = $params->get('sef_advanced_link', 0);

Z tym:

$advanced = $params->get('sef_advanced_link', 1);

Krok 3

Zastąpić

->where($db->quoteName(‘alias’) . ‘ = ‘ . $db->quote($db->quote($segment)));

z

->where($db->quoteName(‘alias’) . ‘ = ‘ . $db->quote($segment));

i jesteś skończony.

saibbyweb
źródło
nie ma za co @gag
saibbyweb
Próbowałem powyższego rozwiązania na mojej stronie 3.3.3 bezskutecznie. Cała strona byłaby pusta.
5

Dla każdego, kto nie chce się ubrudzić edycją kodu Joomla, wspomnimy, że rozszerzenia SEF innych firm umożliwiają usuwanie identyfikatorów z adresów URL SEF.

Istnieje wiele rozszerzeń SEF, które można znaleźć w JED :

Na przykład SH404SEF , jest jednym z najbardziej popularnych i używanych rozszerzeń Joomla, z długą historią i rozszerzoną obsługą wielu komponentów innych firm.

Jeśli chodzi o prostsze rozwiązanie, niedawno natknąłem się na nową wtyczkę, która oferuje kilka funkcji, w tym „Usuń identyfikatory z artykułów, kategorii i tagów adresów URL SEF”. Proste i łatwe rozwiązanie, które działa.

* Uwaga 1: oba wyżej wymienione rozszerzenia są płatnymi plikami do pobrania.

* Uwaga 2: w JSE istnieje inne podobne pytanie .

FFrewin
źródło
Piggybacking w tej kwestii, jestem fanem Direct Alias, który jest wtyczką, która po prostu usuwa identyfikatory artykułów / kategorii i nic więcej. Dobre rozwiązanie, jeśli nie chcesz całego komponentu SEF. extensions.joomla.org/extensions/extension/site-management/sef/…
YellowWebMonkey