Beim definieren einer ReWrite Rule kommt es nach den apche2 Neustart zu
folgender Fehlermeldung:Invalid
command 'RewriteRule', perhaps misspelled or defined by a module not included in
the server configuration
Lösung:
Das Module Rewrite zum Apache2 Server hinzufügen, so daß es beim Serverstart
geladen wird.
Das Modul ist bereits in der Serverkonfiguration vorhanden, wird aber
defaultmäßig nicht mit geladen.
1) In die /etc/sysconfig/apache2 gehen:
Das "rewrite" mit zur Konfiguration hinzufügen:
APACHE_MODULES="rewrite...
2) Den Apache2 Server restarten:
rcapache2 restart
3) Sehen ob das Modul geladen wurde:
/etc/apache2/sysconfig.d/loadmodule.conf:
(Hier wird die Konfiguration nur angezeigt- es kann nicht editiert werden):
LoadeModule rewrite_module /usr/lib/apache2-prefork/mod_rewrite.so
Rewrite Regeln definieren:
In die /etc/apache2/vhosts./vhost.conf gehen:
#Ruft statt home.php , my--blackwhite.php auf. In der URL wird aber weiterhin
home.php angezeigt
RewriteRule ^/home.php$ /my--blackwhite.php
# Leitet die www.380volt.dyndns.info auf www.sr71.dyndns.info um
RewriteRule ^(.*)$ http://www.sr71.dyndns.info/$1 [R=301]
# Lenkt alle URLs die standardmäßig auf die index.php gehen auf die ../home.php
um:
RedirectMatch permanent ^/$
http://www.sr71.dyndns.info/home.php
Einstellungen im .htaccess
File werden ignoriert.:
In der /etc/apache2/vhosts.d/*.conf muß die Regel: "AllowOverride" von "None"
auf "All" gesetzt werden.
AllowOverride ist nur in den <Directory> Abschnitten, nicht aber in den
<Location> oder <Files> Abschnitten gültig.
Wenn die Direktive auf "None" gesetzt ist, wird das .htaccess File ignoriert.
Wenn die Direktive auf "All" gesetzt ist, wird das .htaccess File gelesen und
alle Direktiven darin werden ausgeführt
Die Direktiven in der .htaccess überschreiben die Konfigurationen in der
/etc/apache2/vhosts.d/*_vhosts.conf.
Beispiel von meiner Seite:
Das Up-/ Download Verzeichnis unter /www/www.sr71.de/files/ sollte Paßwort
geschützt und indiziert werden:
Für den Paßwortschutz sollte die .htaccess Datei sorgen.
Damit sie vom Webserver akzeptiert wurde war folgender Eintrag in der
/etc/apache2/vhosts.d/380volt_vhosts.conf notwendig:
==========================================================
# Einen Ordner im Webspace indizieren und Passwort schuetzen
<Directory /www/www.sr71.de/files/>
# .htaccess generell in diesen Verzeichniss zulassen
AllowOverride All
# Einen Ordner im Webspace indizieren lassen
Options +Indexes
</Directory>
==========================================================
|
Meine /etc/apache2/vhosts.d/sr71_vhosts.conf
vom 05.09.2009
<VirtualHost *>
# ==========================================================
ServerName www.380volt.dyndns.info
ServerAdmin info@sr71.de
DocumentRoot /www/www.sr71.de/
# ==========================================================
# Der Ordner mit dem Logfile muss existieren
ErrorLog /www/www.sr71.de/logs/380volt-error.log
CustomLog /www/www.sr71.de/logs/380volt-access.log combined
# ==========================================================
# De Zugriff auf das Filesystem des Webspaces verhindern:
<Directory /www/www.sr71.de/>
AllowOverride None
Order allow,deny
Allow from all
</Directory>
# ==========================================================
# Einen Ordner im Webspace indizieren und Passwort schuetzen
<Directory /www/www.sr71.de/files/>
# .htaccess generell in diesen Verzeichniss zulassen
AllowOverride All
# Einen Ordner im Webspace indizieren lassen
Options +Indexes
</Directory>
# ==========================================================
# don't loose time with IP address lookups
# HostnameLookups On
# needed for named virtual hosts
UseCanonicalName On
# configures the footer on server-generated documents
# ServerSignature On
# ==========================================================
RewriteEngine on
# Ruft statt home.php , my--blackwhite.php auf.
# In der URL wird aber weiterhin home.php angezeigt
# RewriteRule ^/home.php$ /my--blackwhite.php
# Alle Anfragen werden auf my--blackwhite.php umgeleitet
# RewriteRule ^/(.*)$ /my--blackwhite.php
# Lenkt alle URLs auf ../home.php um:
RedirectMatch permanent ^/$
http://www.sr71.dyndns.info/home.php
# Leitet die www.380volt.dyndns.info auf www.sr71.dyndns.info um
# RewriteRule ^(.*)$ http://www.sr71.dyndns.info/$1 [R=301]
# ==========================================================
</VirtualHost>
|
© J. Schilling 05.09.2009
|