Apache mod_rewrite Modul - drehe noch durch :-(

Hallo Zusammen,

bin nun seit stunden dran, aber bekomme es einfach nicht hin Oxid zu installieren :mad:

wollte es vorerst auf einer Subdomain Installieren. (OXID_ESHOP_CE_4.2.0_23610)

Die Ampel ist und bleibt auf rot

Der Hoster ist kontent.com

Hat jemand vielleicht einen Tipp??

lg

sascha

Hier noch die .htaccess:


<IfModule mod_rewrite.c>

IndexIgnore *
#Options +FollowSymLinks

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} oxseo.php$
RewriteCond %{QUERY_STRING} mod_rewrite_module_is=off
RewriteRule oxseo.php$ oxseo.php?mod_rewrite_module_is=on [L]

RewriteCond %{REQUEST_URI} !(/admin/|/core/|/export/|/modules/|/out/|/setup/|/tmp/|/views/)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !(.html|/|.jpg|.css|.pdf|.doc|.gif|.png|.js)$ %{REQUEST_URI}/ [R=301,L]

RewriteCond %{REQUEST_URI} !(/admin/|/core/|/export/|/modules/|/out/|/setup/|/tmp/|/views/)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.html|/)$ oxseo.php

</IfModule>

disabling log file access from outside

<FilesMatch “(EXCEPTION_LOG.txt|.log$|.tpl$)”>
order allow,deny
deny from all
</FilesMatch>

Options -Indexes


Und mod_rewrite ist aktiviert?

gute frage

hab keine ahnung wo ich das einstellen soll :confused:

Dann frag mal beim Hoster nach, ob es aktiviert ist. Am besten sendest du ihm die Systemvoraussetzungen und fragst, ob diese mit deinem Paket erfüllt werden.

laut faq sollte mod_rewrite inklusive sein

[I]Frage: Ist mod_rewrite aktiv und nutzbar?

Antwort:
das Modul mod_rewrite mit den entsprechenden Funktionen steht Ihnen im Rahmen des Webspacemoduls zur Verfügung.
[/I]

[QUOTE=redzilla.de;28623]
wollte es vorerst auf einer Subdomain Installieren. (OXID_ESHOP_CE_4.2.0_23610)

RewriteBase /

[/QUOTE]

Das passt auch noch nicht. Das wird aber erst nach der roten Ampel zum Problem.

noch jemand vielleicht ein idee was ich probieren könnte?

Hier eine Datei (test.php.zip).
Einfach test.php entpacen, in das shop-root-verzeichnis und aufrufen http://url.zum.shop/test.php.
Dann wird angezeigt ob mod_rewrite aktiviert ist.

hallo redzilla,

mod_rewrite verlangt in der server-config ein Option FollowSymLinks
Das ist bei deiner .htaccess aber kommentiert (s. Zeile 4)
Einfach das “#” entfernen, dann sollte es funktionieren.

VG
rené

Erstmal danke für die ganzen Tipps

Die test.php habe ich ins root geladen jedoch kommt folgende Fehlermeldung:

Fatal error: Call to undefined function apache_get_modules() in /WWWROOT/168238/htdocs/test.php on line 2

Zudem habe ich bei Zeile 2 in der .htaccess das # entfernt - jedoch leider keine Änderung.

Mein Hoster (kontent.com) hat sich heute zurück gemeldet:

[I]Hallo

auf der angegebene Seite, dass die Funktion
mod_rewrite nicht installiert sei bzw. nicht zur Verfügung stünde. Das ist
jedoch nicht richtig. Mod_rewrite ist als Standardwert unserer Server immer
aktiv. Das Script, dass das ermittelt, scheint dahingehend nicht richtig zu
funktionieren. Bitte wenden Sie sich in dieser Sache an den Hersteller des von
Ihnen verwendeten Scripts und fragen dort nach, wie das Problem gelöst werden
kann.

Mit freundlichen Grüßen,
KONTENT Team[/I]

Oh man warum ist das alles nur so komliziert :frowning:

du kannst dir - um ganz sicher zu gehen - über die phpinfo funktion die geladenen apache-module ausgeben lassen.
einfach einen datei “test.php” mit folgendem inhalt:
<?php
phpinfo();
?>
anlegen und über den browser aufrufen.
in der sektion “apache2handler” gibts dann den bereich "loaded modules"
wenn mod_rewrite aktiviert ist, wird es hier erscheinen.

die php habe ich hochgeladen - die ausgabe funktioniert auch

apache2handler oder loaded modules ist jedoch nicht dabei.

vielleicht kann jemand von euch was sehen

Auch wenn dein Hoster behauptet, dass mod_rewrite installiert ist, ich kann es nicht finden. In solchen Fällen kann man jeweils nur die Empfehlung aussprechen, den Hoster zu wechseln.

Hallo redzilla,

mod_rewrite ist in Deinem Webspace zumindest nicht aktiv.
Nimm bitte mal die test.php vom Server, das ist ne Einladung :slight_smile:

Gruß

uups das wusste ich nicht, danke für den Hinweis :wink:

so eine scheisse, kontent sagt dass es aktiv ist - aber anscheinend ist es ja nicht so - hatte eigentlich keine lust den hoster zu wechseln

Hi,

habe leider Null Erfahrung mit Kontent und weiss nicht, was bei denen läuft… U.U. musst Du selbst mod_rewrite erst durch irgendetwas Abgefahrenes (php.ini oder .htaccess) konfigurieren?

Gruß

Hallo redzilla,

funktioniert es jetzt bei dir? Wir haben das gleiche Problem.

Gruß Nathalie

so bin nun einen Schritt weiter - aber leider auch nur einen :frowning:

ein netter Mitarbeiter von kontent hat irgendwie die .htaccess verändert.

[I]ich habe die Datei .htaccess, die in oxid/htdocs/ abgelegt ist, aktiviert.
Darin ist u.a. die folgende Zeile enthalten:

RewriteEngine On

Diese bewirkt, dass das Script (das Shop-System) die standardmäßig aktive
mod_rewrite-Funktion erkennt und nutzen kann. Warum die Installationsroutine
des Shop-Systems die .htaccess-Datei nicht automatisch aktivert, ist nicht
nachvollziehbar.[/I]

Der Shop ließ sich nun Problemlos installieren. Will ich aber nun den ahop admin aufrufen kommt: Seiteladefehler - Umleitungsfehler

Jemand eine Idee?

so ein scheiss, hatte mich schon so gefreut :frowning:

Hallo,

das kursiv geschriebene kam vom Hosting-Provider?

Warum die Installationsroutine des Shop-Systems die .htaccess-Datei nicht automatisch aktivert, ist nicht nachvollziehbar.

Automatisch geht das nicht. Eine eigene .htaccess-Datei kann nur vom Hosting-Provider aktiviert oder deaktiviert werden.

Meine ganz ehrliche Meinung?
Für eine Entwicklungsumgebung oder mal zum Rumspielen gibt’s eine VMware appliance. Für das Aufsetzen eines Produktivsystems solltest Du Dir einen anderen Provider suchen.

Der Shop ließ sich nun Problemlos installieren. Will ich aber nun den ahop admin aufrufen kommt: Seiteladefehler - Umleitungsfehler

Im Admin wird kein mod_rewrite benutzt.

Gruß

Ich habe schon mit Version 4.2 Probleme bei der Installation gehabt eben wegen mod_rewrite.
Ich kann auf meinem Server die module auf jede Domain einzelnd aktivieren und bearbeiten. Das habe ich auch nochmal in der htaccess getestet.

z.B.

RewriteEngine On
RewriteBase /
RewriteRule ^ http://www.google.com [R]

So kann man testen ob mod_rewrite aktiv ist.

Mir wurde es dann zu dumm. Habe quelltext bearbeitet und jetzt hat die installation geklappt.

Bei 4.3 habe ich das selbe Problem gehabt. Musste auch den quelltext bescheissen.

In der oxsysrequirements.php habe ich folgendes geändert:

Alter code:

public function checkModRewrite()
    {
        $iModStat = null;
        $sHost   = $_SERVER['HTTP_HOST'];
        $sScript = $_SERVER['SCRIPT_NAME'];
        if ( $sScript && $rFp = @fsockopen( $sHost, 80, $iErrNo, $sErrStr, 10 ) ) {
            $sScript = str_replace( basename($sScript), '../admin/test.php', $sScript );

            $sReq  = "POST $sScript HTTP/1.1
";
            $sReq .= "Host: $sHost
";
            $sReq .= "User-Agent: oxid setup
";
            $sReq .= "Content-Type: application/x-www-form-urlencoded
";
            $sReq .= "Content-Length: 0
"; // empty post
            $sReq .= "Connection: close

";

            $sOut = '';
            fwrite( $rFp, $sReq );
            while ( !feof( $rFp ) ) {
                $sOut .= fgets( $rFp, 100 );
            }
            fclose( $rFp );

            $iModStat = ( strpos( $sOut, 'mod_rewrite_on' ) !== false ) ? 2 : 0;
        } else {
            if ( function_exists( 'apache_get_modules' ) ) {
                // it does not assure that mod_rewrite is enabled on current host, so setting 1
                $iModStat = in_array( 'mod_rewrite', apache_get_modules() ) ? 1 : 0;
            } else {
                $iModStat = -1;
            }
        }
        return $iModStat;
    }

Neuer Code:

  public function checkModRewrite()
    {
        $iModStat = null;
        $sHost   = $_SERVER['HTTP_HOST'];
        $sScript = $_SERVER['SCRIPT_NAME'];
        if ( $sScript && $rFp = @fsockopen( $sHost, 80, $iErrNo, $sErrStr, 10 ) ) {
            $sScript = str_replace( basename($sScript), '../admin/test.php', $sScript );

            $sReq  = "POST $sScript HTTP/1.1
";
            $sReq .= "Host: $sHost
";
            $sReq .= "User-Agent: oxid setup
";
            $sReq .= "Content-Type: application/x-www-form-urlencoded
";
            $sReq .= "Content-Length: 0
"; // empty post
            $sReq .= "Connection: close

";

            $sOut = 'mod_rewrite_on';
            fwrite( $rFp, $sReq );
            while ( !feof( $rFp ) ) {
                $sOut .= fgets( $rFp, 100 );
            }
            fclose( $rFp );

            $iModStat = ( strpos( $sOut, 'mod_rewrite_on' ) !== false ) ? 2 : 0;
        } else {
            if ( function_exists( 'apache_get_modules' ) ) {
                // it does not assure that mod_rewrite is enabled on current host, so setting 1
                $iModStat = in_array( 'mod_rewrite', apache_get_modules() ) ? 1 : 0;
            } else {
                $iModStat = -1;
            }
        }
        return $iModStat;
    }

Funktioniert alles. SEO etc.