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?


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.


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 .


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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.