Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [htaccess] Zapętlanie przekierowań
Forum PHP.pl > Forum > Serwery WWW
sebekzosw
Witam,

mam taki plik htaccess:

Kod
Options FollowSymLinks
Options -Indexes

RewriteEngine On
DirectoryIndex index.php


RewriteCond %{HTTP_HOST} ^www.domena.pl
RewriteRule ^(.*)$ http://domena.pl/$1 [R=301,L]

RewriteRule ^images/token\.jpg$ images/token.php?mod_rewrite=true [QSA,L]
RewriteRule ^admin/(.*).html$ admin/index.php?page=$1 [QSA,L]

RewriteRule ^(.*)(\.js|\.css|\.jpg|\.png|\.gif|\.ico|\.txt|\.php|\.log|\.swf)$ $1$2 [QSA,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

RewriteRule .*.(cache|tpl|log)$ - [F,NC]


i dostaję błąd którego nie wiem jak naprawić:

Cytat
[Wed Jan 23 23:23:10 2013] [error] [client 91.222.27.120] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.


Zna ktoś może sposób na naprawę? Dodam, że strona leży na nazwa.pl wink.gif
nospor
Wywal tę linijkę:
RewriteRule ^(.*)(\.js|\.css|\.jpg|\.png|\.gif|\.ico|\.txt|\.php|\.log|\.swf)$ $1$2 [QSA,L]
i powiedz czy nadal masz zapętlenie
sebekzosw
tak, i dalej błąd 500.

po usunięciu:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

problemu nie ma, ale to akurat potrzebne jest smile.gif
nospor
1) A istnieje plik index.php? smile.gif
2) nie: ^(.*)$ a: (.*)
3) jesli to nie pomoze, to wywal jeszcze QSA dla testu
sebekzosw
1. Oczywiście, że istnieje ;-)

2.

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php?url=$1 [QSA,L]

dalej błąd 500

3. Wywalenie QSA też nic nie daje
nospor
1) A może to spowodu przekierowań w pliku php? Masz tam jakies?

2) Jeśli to nie to, to wywal cały htaccess, a potem dodawaj każdą opcję pokolei. Będziesz wiedział ktora powoduje przekierowania
sebekzosw
w pliku nie mam przekierowań. Robiłem tak jak zasugerowałeś i w ten sposób ustaliłem, że problem jest właśnie z tą linijką. A co ciekawe. Na nazwa.pl jest inna strona, która ma ten sam htaccess (musiałem dopisać kilka reguł do obrazków tylko) i tam działa bez problemów...
nospor
Z którą linijką? Omawialiśmy kilka...
sebekzosw
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

albo

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php?url=$1 [QSA,L]

w skrypcie występowało przekierowanie, ale go skomentowałem:

  1. if(isset($_SERVER['REQUEST_URI']) && preg_match('/(index.php|index.html)/', $_SERVER['REQUEST_URI']))
  2. {
  3. header('HTTP/1.1 301 Moved Permanently');
  4. header('Location: .');
  5. die();
  6. }


jednak i tak nie ma znaczenia


napisałem taką regułę

RewriteRule ^(.*)$ test.php?url=$1 [QSA,L]

i też zwraca błąd 500, a powinno 404... i ten sam błąd w dzienniku błędów

Problem rozwiązany. Nie chodziło o błędną regułę a o:

Kod
RewriteBase /


;/ takie proste rozwiązanie a trzeba było poszukać i pokombinować...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.