![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 320 Pomógł: 2 Dołączył: 17.03.2006 Skąd: Siemianowice Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam na stronie obsługę błędu 404. Jeśli dany zasób nie istnieje to robię: header("Location: 404.htm"); I potem w htaccess: [htaccess] ErrorDocument 404.htm$ http://domena.pl/404.htm RewriteRule ^404.htm$ 404.php [L] [/htaccess] I to działa w porządku. Jednak chciałbym to zmodyfikować tak aby nie było rozszerzenia *.htm bo wszystkie podstrony serwisu też nie mają takiego rozszerzenia. Usuwając z powyższego kodu *.htm pojawia się pętla przekierowań. Mogę liczyć na jakąś podpowiedź gdzie robię błąd? Pozdrawiam, Ł. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 320 Pomógł: 2 Dołączył: 17.03.2006 Skąd: Siemianowice Ostrzeżenie: (0%) ![]() ![]() |
Hmmm... Rzeczywiście, dla "pierwszego" poziomu działa. Jednak dla kolejnych podstron już niestety nie. Np.
Dla domena.pl/fake > jest ok Dla domena.pl/podstrona/fake > nie działa, ładuje się domena.pl/podstrona/404 i pokazuje "pętlę przekierowań" Dla domena.pl/podstrona/podstrona/fake > nie działa, ładuje się domena.pl/podstrona/podstrona/404 i pokazuje "pętlę przekierowań" Możliwe, że jest to związane z dalszym kodem w htaccess ale nie bardzo wiem jak ten temat ugryźć:/ Tak wygląda cały htaccess AddDefaultCharset utf-8 RewriteEngine On RewriteCond %{HTTP_HOST} ^www.domena.pl(.*) [NC] RewriteRule ^(.*)$ http://domena.pl/$1 [R=301,L] ErrorDocument 404 http://domena.pl/404 RewriteRule ^404$ 404.php [L] RewriteRule ^([^.]+)/([^.]+)/([^.]+)$ index.php?p1=$1&p2=$2&p3=$3 [QSA,L] RewriteRule ^([^.]+)/([^.]+)$ index.php?p1=$1&p2=$2 [QSA,L] RewriteRule ^([^.]+)$ index.php?p1=$1 [QSA,L] Możnaby coś pokombinować na zasadzie: ErrorDocument 404 http://domena.pl/.*/404 ErrorDocument 404 http://domena.pl/.*/.*/404 Ale to chyba przerost formy nad treścią. Nie czuję się mocny w wyrażeniach regularnych...:/ |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.10.2025 - 22:25 |