.htaccess in httpd.conf erlauben - aber wie?

Alles, was den Apache betrifft, kann hier besprochen werden.

.htaccess in httpd.conf erlauben - aber wie?

Postby Marove » 22. October 2008 09:04

Hallo Leute,

habe folgendes Problem und hoffe hier kann mir jemand weiterhelfen:

Ich habe mir einen Root-Server geholt (Linux Suse 11 + LAMP). Hat auch alles super geklappt. Nun habe ich eine Domain (examia.de) auf den Root-Server umgeleitet. Dazu habe ich beim Apache-Server einen Virtual-Host eingerichtet, der die Domain www.examia.de auf das Verzeichnis /examia.de/ (document Root liegt übrigens auf: /srv/www/htdocs/) umleitet. So.. Klappt bisher alles superschön. Jetzt habe ich ein SEO-Optimiertes Forum (phpbb) installiert. Das geht auch soweit, nur das SEO-Tool, welches via einer .htaccess (mod_rewrite) arbeitet, will nicht wirklich. Meine Vermutung: Die httpd.conf vom Apache-Server lässt den Zugriff der .htaccess nicht zu.

Zum besseren Verständniss hier ein paar Daten. Zuerst einmal die .htaccess des Forums (liegt auf /srv/www/htdocs/examia.de/.htaccess):

Code: Select all
<Files "config.php">
Order Allow,Deny
Deny from All
</Files>

<Files "common.php">
Order Allow,Deny
Deny from All
</Files>

RewriteEngine on

# Entferne in den nächsten 2 Zeilen das # um www zu erzwingen
#RewriteCond %{HTTP_HOST} !^www\.treffpunkt-fitness\.de$
#RewriteRule ^(.*)$ http://www.treffpunkt-fitness.de/$1 [L,R=301]


#if forum is in /forum/ replace with RewriteBase /forum/
RewriteBase /

RewriteRule ^(.*)-f([0-9]*)/(.*)-t([0-9]*)-s([0-9]*).html viewtopic.php?f=$2&t=$4&start=$5&%{QUERY_STRING} [L]
RewriteRule ^(.*)-f([0-9]*)/(.*)-t([0-9]*).html viewtopic.php?f=$2&t=$4&%{QUERY_STRING} [L]
RewriteRule ^(.*)-f([0-9]*)/index-s([0-9]*).html viewforum.php?f=$2&start=$3&%{QUERY_STRING} [L]
RewriteRule ^(.*)-f([0-9]*)/ viewforum.php?f=$2&%{QUERY_STRING} [L]
RewriteRule ^(.*)-f([0-9]*) viewforum.php?f=$2&%{QUERY_STRING} [L]

#BEGIN alte Foren
RewriteCond %{REQUEST_FILENAME} /viewforum([0-9]*)-([0-9]*)-s([0-9]*).html
RewriteRule (.*) /viewforum.php?f=%1&topicdays=%2&start=%3 [L]

RewriteCond %{REQUEST_FILENAME} /forum([0-9]*).html
RewriteRule (.*) /viewforum.php?f=%1 [L]

RewriteCond %{REQUEST_FILENAME} /forum([0-9]*)-s([0-9]*).html
RewriteRule (.*) /viewforum.php?f=%1&start=%2 [L]

RewriteCond %{REQUEST_FILENAME} /ftopic([0-9]*)-([0-9]*)-([a-zA-Z]*)-s([0-9]*).html
RewriteRule (.*) /viewtopic.php?t=%1&postdays=%2&postorder=%3&start=%4 [L]

RewriteCond %{REQUEST_FILENAME} /ftopic([0-9]*)-s([0-9]*).html
RewriteRule (.*) /viewtopic.php?t=%1&start=%2 [L]

RewriteCond %{REQUEST_FILENAME} /ftopic([0-9]*).html
RewriteRule (.*) /viewtopic.php?t=%1 [L]
#END alte Foren

Man beachte die Rewrite-Base, diese ist auf "/" eingestellt. Dies habe ich übrigens schon auf einem anderen Webspace getestet, der Absolute Pfad wird hier nicht verlangt. Ich hoffe das stimmt soweit.

Und hier ein paar Auszüge aus der httpd.conf die ich für relevant erachte:

Code: Select all
# forbid access to the entire filesystem by default
<Directory />
    Options none
    AllowOverride none
    Order deny,allow
    Deny from all
</Directory>

Das steht ganz oben, also "global" wenn ich das richtig verstanden hab.

Code: Select all
# Note: instead of adding your own configuration here, consider
#       adding it in your own file (/etc/apache2/httpd.conf.local)
#       putting its name into APACHE_CONF_INCLUDE_FILES in
#       /etc/sysconfig/apache2 -- this will make system updates
#       easier :)
<VirtualHost www.examia.de>
ServerAdmin test@test.de
DocumentRoot "/srv/www/htdocs/examia.de"
<Directory "/srv/www/htdocs/examia.de">
allow from all
Options +Indexes
</Directory>
</VirtualHost>


Das steht ganz unten, für den VirtualHost.

Was ich will: ich möchte für /srv/www/htdocs/ und alle Unterverzeichnisse einstellen, dass .htaccess-Dateien erkannt und verwendet werden. Wie stell ich das am blödsten an?

Entschuldigt bitte, dass dies vielleicht eine totale-neuling-idoten-Frage ist, aber ich komm einfach nicht weiter :(.
Danke schonmal im vorraus.

Grüße,

Timo
Marove
 
Posts: 7
Joined: 22. October 2008 08:43

Postby Wiedmann » 22. October 2008 09:16

Meine Vermutung: Die httpd.conf vom Apache-Server lässt den Zugriff der .htaccess nicht zu.

Dann schreibe das Wort "Fehler" in die ".htaccess", und du weist es genau.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Marove » 22. October 2008 09:32

Wiedmann wrote:
Meine Vermutung: Die httpd.conf vom Apache-Server lässt den Zugriff der .htaccess nicht zu.

Dann schreibe das Wort "Fehler" in die ".htaccess", und du weist es genau.


In wie fern? Was sollte passiern? Habe die .htaccess-Datei dur eine ersetzt, die nur das Wort "Fehler" enthält und nichts passiert.

Desweiteren habe ich ein Verzeichnis erstellt www.examia.de/test/ und dort folgende .htaccess-Datei hinterlegt:

Code: Select all
AuthType Basic
AuthName "Admin Panel"
AuthUserFile /srv/www/htdocs/examia.de/test/.htusers
Require user admin

Normal sollte ja das Verzeichnis dadurch durch eine Passwortabfrage geschützt sein, ist es aber nicht. Daher weiterhin meine Vermutung, dass die httpd.conf die Änderung durch .htaccess nicht zulässt.
Marove
 
Posts: 7
Joined: 22. October 2008 08:43

Postby Wiedmann » 22. October 2008 09:39

In wie fern? Was sollte passiern? Habe die .htaccess-Datei dur eine ersetzt, die nur das Wort "Fehler" enthält und nichts passiert.

Dann ist das Benutzen von ".htaccess" - Dateien nicht aktiviert.

Was ich will: ich möchte für /srv/www/htdocs/ und alle Unterverzeichnisse einstellen, dass .htaccess-Dateien erkannt und verwendet werden.

In dem Directory-Block für dein htdocs Verzeichnis fehlt ein "AllowOverride All".
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Marove » 22. October 2008 09:46

Hallo Wiedmann,

der Directory-Block für /srv/ww/htdocs hat nicht existiert.

Ich habe nun folgendes unter

<Direcotry />
....
....
....
</Directory>

eingefügt:

<Directory /srv/www/htdocs>
AllowOverride all
</Direcotry>

Habe dann den Server neugestartet und nichts passiert :(.
Bitte beachte: Ich bin totaler Apache-Noob, ich weiß gar nicht genau was ich da alles schreib ;).


Grüße,

Timo
Marove
 
Posts: 7
Joined: 22. October 2008 08:43

Postby Wiedmann » 22. October 2008 09:53

der Directory-Block für /srv/ww/htdocs hat nicht existiert.

Das bezweifel ich jetzt einfach mal.
--> Such nochmals besser in den Apache Konfigdateien nach.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Marove » 22. October 2008 10:08

Wiedmann wrote:
der Directory-Block für /srv/ww/htdocs hat nicht existiert.

Das bezweifel ich jetzt einfach mal.
--> Such nochmals besser in den Apache Konfigdateien nach.


So habs gefunden. In der httpd.conf steht folgendes:

Code: Select all
### 'Main' server configuration #############################################
#
# The directives in this section set up the values used by the 'main'
# server, which responds to any requests that aren't handled by a
# <VirtualHost> definition.  These values also provide defaults for
# any <VirtualHost> containers you may define later in the file.
#
# All of these directives may appear inside <VirtualHost> containers,
# in which case these default settings will be overridden for the
# virtual host being defined.
#
Include /etc/apache2/default-server.conf


# Another way to include your own files
#
# The file below is generated from /etc/sysconfig/apache2,
# include arbitrary files as named in APACHE_CONF_INCLUDE_FILES and
# APACHE_CONF_INCLUDE_DIRS
Include /etc/apache2/sysconfig.d/include.conf


Ich habe in die "default-server.conf" geguckt und siehe da. Dort ist der Document-Block für /srv/ww/htdocs

Ich habe dort, wie du mir gesagt hast, "AllowOverride All" eingestellt, doch bekomm ich jetzt einen 500 Fehler.

Ich habe dir soeben beide Dateien (so wie sie jetzt sind) per PN zukommen lassen, wäre nett, wenn du mir beschreiben würdest, was ich ändern soll.

Grüße,

Timo
Marove
 
Posts: 7
Joined: 22. October 2008 08:43

Postby Wiedmann » 22. October 2008 10:15

doch bekomm ich jetzt einen 500 Fehler.

Bei einem "Error 500" steht die genaue Erklärung zum Fehler in der "error_log" vom Aapche.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Marove » 22. October 2008 10:31

Wie gesagt ich habe nur das "AllowOverride All" in der "default-server.conf" geändert. Ich hab dir das ganze per PN geschickt. Vielleicht kannst dir das man anschauen. Ansonsten, wo finde ich den Fehler-Log vom Apache?

Wenn ich das "AllowOverride" wieder auf "None" stell funktioniert alles ohne Probleme
Marove
 
Posts: 7
Joined: 22. October 2008 08:43

Postby Wiedmann » 22. October 2008 10:39

wo finde ich den Fehler-Log vom Apache?

Das legt man normal in der "httpd.conf" über die Directive "ErrorLog" fest.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Marove » 22. October 2008 11:05

Ok hab den Error-Log eingesehen. Dort heißt es: "Invalid command "rewriteengine", perhaps misspelled or defined by a module not included in the server configuration.

HIlfe :(
Marove
 
Posts: 7
Joined: 22. October 2008 08:43

Postby Wiedmann » 22. October 2008 13:02

Dort heißt es: "Invalid command "rewriteengine", perhaps misspelled or defined by a module not included in the server configuration.

mod_rewrite ist bei dir nicht geladen.
--> In der Datei wo es bei dir die Directiven mit "LoadModule" hat, sollte es auch eine aktive Zeile mit "LoadModule rewrite_module ..." geben.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Marove » 22. October 2008 14:15

Hallo Wiedmann,

ich hab jetzt mal nachgesehen mod_rewrite ist wohl wirklich nicht installiert (oder auch kompilliert,....). Wie Installiere ich das ganze? Kannst du mir dazu eine Anleitung geben? Bin nicht so der Linux Profi
Marove
 
Posts: 7
Joined: 22. October 2008 08:43

Postby Wiedmann » 22. October 2008 14:33

Wie Installiere ich das ganze?

Bei Suse gibt es IMHO ein Softwareinstallationstool und bzw. ein eigenes Kommando um Apache Module zu aktivieren.

Kannst du mir dazu eine Anleitung geben?

Sollte in der Suse-Doku beschrieben sein. (Oder natürlich den Anbieter des Root-Servers fragen)

Bin nicht so der Linux Profi

Habe und benutze selbst kein Linux (egal welches)...
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany


Return to Apache

Who is online

Users browsing this forum: No registered users and 4 guests