![]() |
![]() ![]() |
![]() |
![]()
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: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Zrobiłem na szybko coś takiego:
Kod RewriteEngine On ErrorDocument 404 http://127.0.0.1/test/404 RewriteRule ^404$ test.php [L] I działa. Przynajmniej u mnie (IMG:style_emoticons/default/biggrin.gif) |
|
|
![]()
Post
#3
|
|
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...:/ |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
zrob header location na http://domena.pl/404 a nie na 404.
Ten post edytował kapslokk 15.09.2015, 10:10:14 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 320 Pomógł: 2 Dołączył: 17.03.2006 Skąd: Siemianowice Ostrzeżenie: (0%) ![]() ![]() |
Choć długo nie chciało ale zaczęło działać. Czasem ten htaccess mnie zadziwia... Dzięki za pomoc.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 22:12 |