PDA

Zobacz pełną wersję : Przekierowanie do strony błędu z kodem 404 zamiast do strony głównej



p.h.
03-07-2016, 15:50
Zauważyłem, że w przypadku, gdy parametry podane URI mojej strony prowadzą do nie istniejącej podstrony Joomla nie zwraca kodu 404 i nie jest wyświetlana strona błędu (czy to własna czy systemowa), ale strona główna. Chciałbym, aby jednak zwracany był kod 404 i strona błędu.

Mam włączone:
-Zastosuj przepisywanie URL
- Proste adresy

W związku z tym w pliku .htaccess jest standardowy kod SEF Joomli:

## Begin - Joomla! core SEF Section.#
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#
# If the requested path and file is not /index.php and the request
# has not already been internally rewritten to the index.php script
RewriteCond %{REQUEST_URI} !^/index\.php
# and the requested path and file doesn't directly match a physical file
RewriteCond %{REQUEST_FILENAME} !-f
# and the requested path and file doesn't directly match a physical folder
RewriteCond %{REQUEST_FILENAME} !-d
# internally rewrite the request to the index.php script
RewriteRule .* index.php [L]
#

## End - Joomla! core SEF Section.

Jeśli dobrze rozumiem, to koniec-końców Joomla powinna jednak zauważyć, że przepisany w .htaccess URI nie istnieje i zwrócić błąd 404. Tak się jednak nie dzieje. Kończy się na przepisaniu adresu do strony głównej; jak wynika z kodu wyżej.
Mam wrażenie, że coś jednak nie gra. Spodziewałbym się, że mimo włączenia Prostych adresów (SEO), Joomla będzie zwracać błędy 404, tam gdzie to zasadne.

W czym jest problem? Co mi umyka? Jak przekonać Joomlę by zwracała błędy 404 mimo włączenia SEO?
Będę wdzięczny za konstruktywną podpowiedź.

Bazyl
03-07-2016, 16:24
Witam,


1. Zainstaluj czystego Joomla i sprawdź
2. W sumie powinna wystarczyć zmiana szablonu na domyślny
3. Wpisz w szukajkę na wiki: 404
4. Zobacz, co masz w głównym katalogu swojego szablonu
5. Sprawdź w doinstalowanych dodatkach

p.h.
03-07-2016, 22:51
Dziękuję za podpowiedź.

Winny jest dodatek samej Joomli - Filtr języków. Jego wyłączenie pozwala na obejście problemu i strona wraz z kodem 404 pojawia się kiedy powinna.
Problem w tym, że witryna jest dwujęzyczna i potrzebuje zarówno tego dodatku, jak i współpracujących z nim: Przełącznika języków i Wielojęzyczności.

Czy jest to błąd w Filtrze języków? Jak rozwiązać ten problem pozostawiając włączony Filtr języków i powiązane z nim dodatki?

Bazyl
04-07-2016, 09:39
Prawidłowo skonfigurowana wielojęzyczność generuje oddzielne strony błędu dla języków

p.h.
04-07-2016, 16:51
A choć wg mojego Joomla wielojęzyczność jest skonfigurowana prawidłowo (patrz niżej), działa skądinąd prawidłowo, to żadna strona błędu się nie wyświetla. Co może być powodem? Jakaś hipoteza?

Wielojęzyczność - Stan
Dodatek Filtr języków Włączony
Opublikowane moduły typu Przełącznik języka 1
Opublikowane domyślne strony startowe (włącznie z 1 z przypisanym językiem "Wszystkie") 3
Język Opublikowane języki witryny Opublikowane języki treści Opublikowane domyślne strony startowe
en-GB OK OK OK
pl-PL OK OK OK