# mod_rewrite und server4free?



## PHPer (7. Januar 2005)

Hey Leute!

N guter Freund von mir hat sich (dämlicherweise) nen vSERVER bei server4free bestellt (ist schon länger her, also kündigung wohl zum nächsten mal erst). Nun gibts mal wieder tolle Probleme mit der Seite, und ich will diese nochmal umbauen. Dabei will ich mod_rewrite nutzen.

Allerdings hab ich da immer nen 501 Error. Angeblich (habe ich mal gelesen) soll Confixx das irgendwie für sich beanspruchen und man soll das damit irgendwie einstellen können!?

K.a., kennt sich jemand von Euch mit dem vSERVER aus und kann mir sagen wie mich mod_rewrite zum laufen krieg!?

Danke!


----------



## Arne Buchwald (7. Januar 2005)

Hallo,

zuerst müsstest du mal überprüfen, ob dein installierter Apache überhaupt mod_rewrite unterstützt:

Befindet sich eine solche Zeile

```
LoadModule rewrite_module     libexec/mod_rewrite.so
```
in einer httpd.conf ?


----------



## PHPer (7. Januar 2005)

K.a. hab kein zugriff auf die httpd.conf, aber laut phpinfo() ist mod_rewrite geladen. Ist übrigends 500 error, nicht 501. sorry...


----------



## Sven Mintel (10. Januar 2005)

Du müsstest in der httpd.conf das overriden der FileInfo-Direktiven für das öffentliche Verzeichnis erlauben.... ansonsten verursacht ein Rewrite-Versuch den 500-Fehler.

Frag mich aber nicht, ob und wie das mit Confixx geht.


----------



## Olaf123 (30. Januar 2005)

Hallo !


			
				Sven Mintel hat gesagt.:
			
		

> Du müsstest in der httpd.conf das overriden der FileInfo-Direktiven für das öffentliche Verzeichnis erlauben.... ansonsten verursacht ein Rewrite-Versuch den 500-Fehler


Mh, wie geht das ?


Allgemeine Info:
Für den Fall, dass der nächste User auch verzweifelt auf der Suche ist nach einer Lösung für die Aktivierung von mod_rewrite auf einem vServer (Basic) von www.server4you.de:

Der Support von www.server4you.de hat auf meine entsprechende Anfrage geantwortet:


> Sehr geeehrter Herr ...
> ... Leider haben Sie bei einem vServer Basic einen Zugriff auf die
> httpd.conf nicht.


 
Seltsamerweise kann ich aber doch auf die httpd.conf zugreifen und diese ändern:

falls ich jetzt nicht völlig falsch liege, kann ich zumindest die Vorgehensweise für einen Zwischenerfolg beschreiben:
Die Datei /etc/apache2/httpd.conf wie folgt ändern:


> # Eigene Ergaenzung fuer mod_rewrite
> LoadModule rewrite_module /usr/lib/apache2/mod_rewrite.so


 
Nach dem notwendigen Neustart des Apache-Servers (/etc/init.d/apache2 restart) wird mod_rewrite wenigstens in der php.info als geladen angezeigt.
Leider wird bei Einsatz der entsprechenden .htaccess mit dem Inhalt


> Options FollowSymLinks
> RewriteEngine On
> (...usw...)


nur eine Fehlerseite (Error 500) angezeigt, wenn man versucht irgendeine Datei aufzurufen.
Vielleicht weiss da jemand weiter ?

Gruß
Olaf


----------



## Sven Mintel (30. Januar 2005)

Der Fehler 500 weist höchstwahrscheinlich darauf hin, dass du in der .htaccess etwas versuchst, was lt. httpd.conf nicht zugelassen ist.....500 bedeutet "interner Serverfehler".

Wenn du meinen Beitrag konzentriert durchliest, fällt dir vielleicht jenes ins Auge:
*das overriden der FileInfo-Direktiven für das öffentliche Verzeichnis erlauben*
Für jede Direktive, welche du per .htaccess überstimmen willst, muss dies explicit in der httpd.conf notiert werden.
In diesem Fall im <directory>-Abschnitt für dein öffentliches Verzeichnis(htdocs oder wasauchimmer)

In diesem Abschnitt findest du eine Zeile, welche mit "AllowOverride" beginnt... dort musst du jede überstimmbare Direktive angeben(Details dazu stehen dort)

Falls du die Options-Direktive in .htaccess ändern willst, trage dort "Options"ein.
Wenn du mod_rewrite benutzen willst, muss dort zusätzlich "FileInfo" hinein.

* Options FollowSymLinks* kannst du auch in der httpd.conf setzen(im selben Abschnitt, etwas weiter oben) .

Ich würd mich allerdings nicht zu früh freuen... die Tatsache, dass du eine httpd.conf entdeckt hast, muss nicht bedeuten, dass es die für den Server entscheidende Konfigurationsdatei ist.
Ich würd mich jedenfalls sehr wundern, wenn du darauf Zugriff hättest... da sind dann wohl ein paar Admins im Winterschlaf


----------



## Olaf123 (30. Januar 2005)

Hallo !

Danke für Deine Antwort.



			
				Sven Mintel hat gesagt.:
			
		

> Wenn du meinen Beitrag konzentriert durchliest, fällt dir vielleicht jenes ins Auge:
> *das overriden der FileInfo-Direktiven für das öffentliche Verzeichnis erlauben*
> 
> In diesem Fall im <directory>-Abschnitt für dein öffentliches Verzeichnis(htdocs oder wasauchimmer)


Öhhmm... (Laie....) .... welches ist mein "öffentliches Verzeichnis" ? Das Web eines angelegten Users, "web1" ? Oder root ?
Ich hab hier z.B. ein "srv/www/htdocs anzubieten, enthält phpmyadmin und webalizer, aber was hat das mit dem Ordner (web) zu tun, in dem ich das entsprechende Script habe ?

Gruß
Olaf


----------



## Sven Mintel (30. Januar 2005)

Das ist das Verzeichnis, welches in der httpd.conf als *DocumentRoot* angegeben ist.


----------



## Olaf123 (30. Januar 2005)

Danke Dir.
Dort ist als DocumentRoot das Confixx-Verzeichnis (/srv/www/confixx/html) angegeben.

Hab jetzt so ziemlich alles ausprobiert, funktioniert nicht.
Mein letzter Versuch war entsprechend der Beschreibung unter
http://www.serversupportforum.de/forum/showthread.php?t=1672&page=2&pp=15&highlight=httpd+Spezial

Hat aber nichts weiter gebracht.
Error 500 und kein Ende.

Keine Ahnung, woran das jetzt noch liegen kann.
Und da mein Test-"Server" bei www.server4you.de heute abläuft (rechnerisch eigentlich in ca. 3 Stunden), werde ich es wohl auch nicht mehr herausfinden.
Also, mit meinem Rootserver bei www.Strato.de habe selbst ich Laie das vor geraumer Zeit hinbekommen, mit dem vorherigen Rootserver bei www.1und1.de auch, aber bei dem vServer geht mir die Puste aus.

Gruß
Olaf


----------



## Günstig-Webspace (31. Januar 2005)

Die zwei Zeilen Options FollowSymLinks und RewriteEngine On in der .htaccess sind keine gültigen htaccess-Definitionen. Diese einfach aus der .htaccess löschen.

Im Confixx httpd Menü trägst du einfach Options +FollowSymlinks für den Account ein.

Dann sollte es gehen.

Gruß


----------



## Sven Mintel (31. Januar 2005)

Warum sollen das _keine gültigen htaccess-Definitionen_ sein?

*Apache-Manual:*
Options-Direktive
Beschreibung: Definiert, welche Eigenscahften oder Funktionen in einem bestimmten Verzeichnis verfügbar sind 
Syntax: Options [+|-]Option [[+|-]Option] ... 
Voreinstellung: Options All 
Kontext: Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess 

RewriteEngine Directive
Description: Enables or disables runtime rewriting engine 
Syntax: RewriteEngine on|off 
Default: RewriteEngine off 
Context: server config, virtual host, directory, .htaccess


----------



## Günstig-Webspace (31. Januar 2005)

Ganz einfach.

Weil S4Y eine eigens Konfigurierte Confixx Version hat, bei der es nunmal nicht zulässig ist, diese Einträge durch die .htaccess aufzurufen.

Gruß


----------



## Sven Mintel (31. Januar 2005)

Wenn du dieses Thema genau durchliest, wurde das bereits erwähnt:


> Für jede Direktive, welche du per .htaccess überstimmen willst, muss dies explicit in der httpd.conf notiert werden.



Confixx bietet lediglich ein Interface, um die httpd.conf anzupassen, ....welches nicht nötig ist, wenn man direkten Zugriff auf die Konfigurationsdatei  hat(was hier angeblich der Fall ist).


----------



## dcf (19. April 2005)

*SOLVED: mod_rewrite und server4free?*

Auch beim vServer BASIC hat man vollen root-Zugriff, also auch auf die Apache-Konfiguration!

*Dateien:* 

/etc/apache2/httpd.conf - Nur zur Abwärtskompatibilität: Nichts darin ändern!
/etc/apache2/confixx_vhost.conf - Confixx-Konfigurationsdatei. Nichst darin ändern!
/etc/apache2/apache2.conf - Konfigurationsdatei für den Webserver: Eigene Anweisungen am Ende hinzufügen

*mod_rewrite aktivieren:* 
Wenn mod_rewrite nicht in der phpinfo() erscheint, muss es erst aktiviert werden. Die verfügbaren Module liegen in _/etc/apache2/mods-available_, die aktivierten Module in _/etc/apache2/mods-enabled_. Also muss das die Datei _rewrite.so_ nach _mods-enabled_ verlinkt werden:

```
ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods_enabled/rewrite.load
```
Anschließend die Konfigurationsdatei neu laden:

```
/etc/init.d/apache2 reload
```

*Lokalen Override erlauben:* 
Damit mod_rewrite per _.htaccess_ aktiviert werden kann, muss der Override erlaubt werden. Dazu folgende Zeilen ans Ende der _/etc/apache2/apache2.conf_ einfügen:

```
<Directory "/var/www/web1/pfad/zum/ordner">
        AllowOverride All
</Directory>
```

Dann sollte der Override via .htaccess funktionieren. Natürlich kann statt _Allow Override All_ auch eine andere Option notiert werden, die nicht alles erlaubt  und zum Beispiel nur die aktivierung von mod_rewrite, aber da weiß ich grad nicht, wie das geht )


----------

