Jump to content
xt:Commerce Community Forum
Sign in to follow this  
kapsikum

Mode Rewrite URLs - Interner Serverfehler

Recommended Posts

Hallo,

mein Problem: Wenn ich im Backend "Mod Rewrite URL" auf "true" stelle passiert folgendes:

Das Frontend startet beim Aufruf noch ganz normal, wenn ich über die Links mit der Maus fahre, sind die auch tatsächlich verändert worden (aus .../index.php?page=categorie&cat=3 wird .../kategorie3/...). Sobald ich aber auf einen Link klicke, kommt eine Fehlermeldung (a 500 Internal Server Error error).

Stelle ich den rewrite-modus wieder auf "false" funktioniert wieder alles.

Was könnte der Grund dafür sein? Was muss ich hier für eine Einstellung ändern?

Ich würde mich sehr über eine Antwort freuen.

Share this post


Link to post
Share on other sites

Hallo,

danke für deine schnelle Antwort.

Ja, alle haccess Dateien liegen in den entsprechenden Verzeichnissen, auch die im root-Verzeichnis.

Kann ich davon ausgehen, dass mein Server richtig konfiguriert ist und mod_rewrite unterstützt, wenn die Links sich im frontend verändert haben? Gibt es noch eine Idee, woran es liegen könnte?

Vielen Dank schon jetzt.

Share this post


Link to post
Share on other sites

Hallo Uwe,

danke für deine Antwort. Also ich bin ein Laie auf dem Gebiet, hab dennoch mal den Fehler provoziert und im log nachgesehen. Folgendes Ergebnis:

[sat Apr 09 15:17:09 2011] [error] [client "meine Heim-IP"] 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., referer:

Die Meldung sagt doch nur, dass der Verweis nicht gefunden wurde, oder?

Aber warum?

Nochetwas ist mir aufgefallen, die "statischen" Seiten (Impressum, AGB usw.) funktionieren, allerdings werden die URLs auch nicht umgeschrieben (trotz entsprechender Einstellung im Backend). Nur die dynamischen Kategorie-/ Artikel-URLs sind betroffen.

Kann ich davon ausgehen, dass der rewrite mode nicht funktioniert? Aber warum zeigt der Browser beim Überfahren der Links dann die geänderten URLs an?

Ich bitte um eure Expertenhilfe.

Edited by kapsikum

Share this post


Link to post
Share on other sites

Hi,

kannst Du bitte mal Dein .htaccess posten? Sieht mir nach einem Loop aus.

BTW: das Linking hat nichts damit zu tun, ob es auch funktioniert. Natürlich referenziert der Shop auf rewritten URLs, erst einmal egal ob die funktionieren oder nicht.

Gruß, Uwe

Share this post


Link to post
Share on other sites

Hallo Uwe,

nett, dass du mir zur Seite stehst ;-)

Also die htaccess, die im root-Verzeichnis liegt habe ich eigentlich nicht verändert und sieht so aus:

-----------------------

# RewriteEngine on

# RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php

DirectoryIndex index.php

RewriteEngine on

RewriteCond %{REQUEST_URI} !^/media/

RewriteCond %{REQUEST_URI} !^/extAdmin/

RewriteCond %{REQUEST_URI} !^/skin/

RewriteCond %{REQUEST_URI} !^/js/

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule .* index.php

-----------------------------------

Ist daran etwas auffällig?

Danke schonmal.

Gruß

Ralf

Share this post


Link to post
Share on other sites

Hi,

das erklärt den Fehler schon mal nicht. Läuft das auf einem Webspace, einem v- oder reellem Root-Server? Hast Du den Apache konfiguriert bzw. kannst Du überhaupt auf dessen conf zugreifen?

Gruß, Uwe

Share this post


Link to post
Share on other sites

... es ist ein managed server (also dediziert, aber ohne root-Zugriff). Der Provider meinte, dass der rewrite mode standardmäßig immer aktiviert sei. Ich selber kann zwar kleinere Konfigurationen über ein Webinterface vornehmen, aber mod_rewrite nicht explizit an oder abschalten. Es gibt in diesem Zusammenhang nur eine Einstellung, die ich vornehmen kann, die laut Beschreibung eine Auswirkung auf die Funktion hätte und das ist eine namens "SymLinksIfOwnerMatch", die muss auf on stehen (tut sie auch).

Ich leg mal in den Anhang alle für mich möglichen Optionen und deren jetzige Einstellungen. Vielleicht findest du dich zurecht.

Gruß Ralf

post-97288-1433791519574_thumb.gif

Share this post


Link to post
Share on other sites

Hi,

in den Einstellungen liegt der Hund auch nicht begraben.

Der Provider meinte, dass der rewrite mode standardmäßig immer aktiviert sei.

Das glaube ich ihm auch. Die Fehlermeldung, die Du bekommst kann sogar bedeuten 'zuviel rewrite'.

Request exceeded the limit of 10 internal redirects

Das heißt es liegt irgendwo ein Loop vor, der Apache verweist auf sich selbst und nach 10 Mal gibt er auf. Das kann mittels .htaccess passieren, man kann aber auch Rewrite-Rules in die Apache-configs selbst eintragen. Das kann auch durch eine unglückliche Kombination aus Rewrite-Rules, Verzeichnis-Aliases o.ä. hervorgerufen werden. Aus Deinem .htaccess geht aber nichts dergl. hervor und aus den Dir zur Verfügung stehenden Einstellungs-Möglichkeiten auch nicht. Ich kann Dir daher leider auch nicht sagen, woher der Fehler kommt.

Use 'LimitInternalRecursion' to increase the limit if necessary

Wenn Du das wirklich erhöhst, gibt der Apache im Falles eines Loops einfach entsprechend nach X Mal auf, das macht aber keinen wirklichen Unterschied.

Gruß, Uwe

Share this post


Link to post
Share on other sites

Hallo zusammen,

ich reihe mich hiermit mal in die Liste der betroffenen ein... kurz zusammengefasst: Kein Link auf dem Frontend funktioniert, solange im Backend unter "Mod Rewrite URL:" true eingestellt ist (unglücklicherweise ist genau das der Grund, warum ich zu Veyton wechseln wollte/will)

die htaccess sieht so aus:

AddType x-mapp-php5 .php

AddHandler x-mapp-php5 .php

#RewriteEngine on

#RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php

DirectoryIndex index.php

RewriteEngine on

RewriteCond %{REQUEST_URI} !^/media/

RewriteCond %{REQUEST_URI} !^/extAdmin/

RewriteCond %{REQUEST_URI} !^/skin/

RewriteCond %{REQUEST_URI} !^/js/

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule .* index.php

die info.php ist hier zu finden:

phpinfo()

Die Testinstallation hier xt:Commerce 4.0

Hoster ist 1und1 - Paket Homepage Professionell Plus.

Ich hoffe, dass irgendjemand das Problem schon gelöst hat und mir hier weiterhelfen kann... das wäre prima ;-)

Vielen Dank schon mal im Voraus!

André

Share this post


Link to post
Share on other sites

na hoppla....

versuchs mal mit dieser .htaccess:

AddType x-mapp-php5 .php

AddHandler x-mapp-php5 .php

Options +FollowSymlinks

#RewriteEngine on

#RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php

DirectoryIndex index.php

RewriteEngine on

RewriteBase /

RewriteCond %{REQUEST_URI} !^/media/

RewriteCond %{REQUEST_URI} !^/extAdmin/

RewriteCond %{REQUEST_URI} !^/skin/

RewriteCond %{REQUEST_URI} !^/js/

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule .* index.php

Warum auch immer, so funzt es bei mir grade mal ;-)

Preisauszeichner

Edited by Preisetiketten

Share this post


Link to post
Share on other sites

Hi,

das hatten wir in einem anderen Ticket schon mal, dass dieses "RewriteBase /" ausschlaggebend war - mich würde nur mal die Erklärung interessieren, ganz nachvollziehen kann ich es nicht. Aber wenn es geht, umso besser!

Gruß, Uwe

Share this post


Link to post
Share on other sites

@ Preisetiketten

... vielen Dank für den Tipp. Nun läuft bei mir auch alles!!!

Genau wie Uwe würde mich auch interessieren, was ich da gerade an meiner .htaccess verändert habe ;-)

Offensichtlich ist dass dann doch ein Bug und hätte noch viel mehr User treffen müssen. Komisch.

Share this post


Link to post
Share on other sites

Hi,

wichtig ist erst einmal, dass es so klappt!

Hinter den Grund steige ich ehrlich gesagt nicht durch. RewriteBase wird immer dann benötigt, wenn das Verzeichnis mit der .htaccess über einen anderen als den physikalischen Pfad erreichbar ist. In der Praxis heißt das wenn z.B. ein Alias /shop auf /srv/www/htdocs/web1/ angelegt ist und der Shop über /shop aufgerufen wird, benötigt mod_rewrite die Direktive "RewriteBase /shop". Soweit ist das klar. Dieses "RewriteBase /" macht in meinen Augen gar keinen Sinn, der Grund für dessen Notwendigkeit muss aber irgendwo in der Konfiguration der Webserver begründet sein. Gut, aber die weitere Diskussion darum gehört vermutlich eher in ein Apache-Forum...;)

Gruß, Uwe

Share this post


Link to post
Share on other sites

Hi,

sorry, aber ganz blicke ich da nicht durch.

Ich habe hier soweit alles befolgt und zuletzt meine .htaccess mit der von Preisetiketten ersetzt. Wenn ich die geänderte datei auf dem Server hochlade funktioniert allerdings gar nichts mehr. meine Seite sowie der adminberreich besteht nur noch aus Zahlen und symbolen.

Wie sieht Deine .htaccess aus und kann man sich das, was dann bei Dir passiert mal ansehen? Kannst Du bitte eine URL dazu posten?

Habe wieder die alte eingefügt und es wird alles korrekt (bzw. nicht so wie ich es haben will) angezeigt.

Was möchtest Du denn genau haben, was nicht funktioniert?

Gruß, Uwe

Share this post


Link to post
Share on other sites

Hi,

Hier (in diesem ganzen Thread) scheinen recht seltsame Konfigurationen im Spiel zu sein, denn eigentlich dürfte ein "RewriteBase /" gar keinen Effekt haben, so lange die Pfade "normal" angelegt sind. Ich vermute den "Fehler" in einer ungewöhnlichen Konstellation des docroots des vhosts, das kann ich aber beim besten Willen nicht aus der Ferne diagnostizieren. Da müsste der Provider mal ein Statement dazu abgeben.

Bei Dir ist es wohl gleich so, dass Dein Server vergisst, dass er PHP-Seiten parsen muss und liefert gleich den Quelltext aus. Hast Du mal spaßweise versucht, die ./conf/config.php aufzurufen? Wäre ja "toll" wenn dann gleich die Passwörter im Klartext auf dem Bildschirm erscheinen.

Es sollte ja eingentlich genügen den Haken bei "Mod Rewrite URL:" auf "ja" zu stellen. Die URL wird dann zwar so angezeigt wie ich es haben will, aber die Seite selbst kann nicht mehr geladen werden.

Naja, nicht ganz. Der Server muss natürlich schon mod_rewrite geladen haben und dem vhost zur Verfügung stehen. Für den vhost selbst gelten auch bestimmte Voraussetzungen, wenn die aber nicht erfüllt sind, siehst Du nur noch 500er Fehler und das ist hier ja nicht der Fall.

Die URLs in den Links, die Du siehst, haben damit aber gar nichts zu tun, das ist eine andere Baustelle. Du kannst jedes Scrips anweisen, irgendwas als URL in die Links reinzuschreiben, die Frage ist dabei immer, ob der Server das dann auch richtig interpretiert, wenn man die URLs so aufruft - und das macht eben mod_rewrite bzw. sollte es machen.

Sorry, dass ich Dir leider nicht viel weiterhelfen kann.

Gruß, Uwe

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...