Meine Ordnerstruktur:mod_rewrite - Prevent mehr Umleitungen
Jetzt habe ich das Problem, dass mein Apache in einigen Fällen zu oft neu schreibt interne, dass ich ein 500-Server-Fehler erhalten, hier das Protokoll:
[Wed Jan 05 17:51:54 2011] [error] [client 127.0.0.1] Request exceeded the limit of 3 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
[Wed Jan 05 17:51:54 2011] [debug] core.c(3046): [client 127.0.0.1] r->uri = /nameoftherootfolder/public/index.php
[Wed Jan 05 17:51:54 2011] [debug] core.c(3052): [client 127.0.0.1] redirected from r->uri = /nameoftherootfolder/public/index.php
[Wed Jan 05 17:51:54 2011] [debug] core.c(3052): [client 127.0.0.1] redirected from r->uri = /nameoftherootfolder/public/index.php
[Wed Jan 05 17:51:54 2011] [debug] core.c(3052): [client 127.0.0.1] redirected from r->uri = /nameoftherootfolder/nothere/
Meine .htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
die index.php alle Anforderungen verarbeitet und behandeln auch die Zube wenn ssed url ist falsch, z. existiert nicht.
Es funktioniert, wenn die zugegriffene URL existiert aber es die URL ist "falsch" bekomme ich diesen Fehler. ich dies nur, da ich einen Apache-Alias gesetzt:
Alias /nameoftherootfolder/ "C:/somepathshere/WAMP/www/nameoftherootfolder/public/"
<Directory "C:/somepathshere/WAMP/www/nameoftherootfolder/public/">
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
Allow from all
</Directory>
Wie kann ich jetzt zu viele interne Umleitungen mit Apache verhindern? Gibt es vielleicht einen RewriteCond? Ich benutze Apache 2.2.11.
Edit:
Wenn ich legte ein index.php/
in dem uri es funktioniert, aber das ist SEO unfreundlich, benutzerunfreundlich und sieht schrecklich aus, zum Beispiel anfordern. http://localhost/nameoftherootfolder/index.php/nothere/
oder http://localhost/nameoftherootfolder/index.php/index/
Edit # 2:
Nachdem ich
RewriteBase /nameoftherootfolder/
hinzugefügt funktioniert es wissen.
Hm ... es scheint keinen Effekt zu haben ... immer noch diesen Fehler mit dem gleichen in der Apache-Fehlerprotokoll. – Poru
@Poru versuchen Sie die aktualisierte Version, es ist eine vollständige Htaccess-Datei –
Ich versuchte, das gleiche Ergebnis ... vielleicht ist es ein Problem des Alias? Übrigens. Schau dir den obigen Schnitt an. – Poru