Zur Navigation

Problem mit mod_rewrite-Aktivierung auf Winserver

Apache-Konfigurationsfehler?

1 Richard (Gast)

MoinMoin!

Ich versuche jetzt schon seit einigen Wochen (immer mal nebenbei) mod_rewerite auf unserem Windows 2008 Server zum laufen zu bekommen - bisher leider relativ erfolglos.
Der Artikel hier hat mir wieder einigermaßen einen Lichtblick verschafft:
http://notizen.joergkrusesweb.de/2004-3/rewrite.html

Allerdings hab ich ein Problem mit dem letzten Punkt:
Falls dies nicht der Fall sein sollte, sollte überprüft werden, a) ob in der Datei httpd.conf das Verzeichnis für das Document Root korrekt angegeben ist, d.h. das Windows-Verzeichnis, in welchem die Webseiten untergebracht sind (im folgenden Beispiel der Pfad bei unveränderter Standardinstallation):

<Directory "C:/Programme/Apache_Group/Apache/htdocs">

In der httpd.conf vom Plesk (ist die Einzige, die ich gefunden hab) gibt es mehrere Directory Verweise. Ansich würd ich jetzt alle durchprobieren, wenn da nicht sowieso noch einige weitere Parameter wären, die mich geringfügig irritieren.

Die Stellen inder httpd.conf schauen folgendermaßen aus:

# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "C:\Program Files (x86)\Plesk\admin/htdocs"


# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories). 
#
# First, we configure the "default" to be a very restrictive set of 
# features.  
#
<Directory />
    Options FollowSymLinks
    AllowOverride All
#BEGIN_REQUIRE_SSL
    SSLRequireSSL
#END_REQUIRE_SSL
</Directory>


# This should be changed to whatever you set DocumentRoot to.
#
<Directory "C:\Program Files (x86)\Plesk\admin\htdocs">


#
# UserDir: The name of the directory that is appended onto a user's home
# directory if a ~user request is received.  Be especially careful to use
# proper, forward slashes here.  On Windows NT, "Personal/My Website"
# is a more appropriate choice.
#
#UserDir "My Documents/My Website"

#
# Control access to UserDir directories.  The following is an example
# for a site where these directories are restricted to read-only.
#
# You must correct the path for the root to match your system's configured
# user directory location, e.g. "C:/WinNT/profiles/*/My Documents/My Website"
# or whichever, as appropriate.
#
#<Directory "C:/Documents and Settings/*/My Documents/My Website">
#    AllowOverride FileInfo AuthConfig Limit
#    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
#    <Limit GET POST OPTIONS PROPFIND>
#        Order allow,deny
#        Allow from all
#    </Limit>
#    <LimitExcept GET POST OPTIONS PROPFIND>
#        Order deny,allow
#        Deny from all
#    </LimitExcept>
#</Directory>


#
# Aliases: Add here as many aliases as you need (with no limit). The format is 
# Alias fakename realname
#
# Note that if you include a trailing / on fakename then the server will
# require it to be present in the URL.  So "/icons" isn't aliased in this
# example, only "/icons/".  If the fakename is slash-terminated, then the 
# realname must also be slash terminated, and if the fakename omits the 
# trailing slash, the realname must also omit it.
#
# We include the /icons/ alias for FancyIndexed directory listings.  If you
# do not use FancyIndexing, you may comment this out.
#
Alias /icons/ "C:\Program Files (x86)\Plesk\admin\icons\"

<Directory "C:\Program Files (x86)\Plesk\admin\icons">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>


# ScriptAlias: This controls which directories contain server scripts.
# ScriptAliases are essentially the same as Aliases, except that
# documents in the realname directory are treated as applications and
# run by the server when requested rather than as documents sent to the client.
# The same rules about trailing "/" apply to ScriptAlias directives as to
# Alias.
#
ScriptAlias /cgi-bin/ "C:/Program Files (x86)/Plesk/admin/cgi-bin/"

#
# "C:/Program Files (x86)/Plesk/admin/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "C:/Program Files (x86)/Plesk/admin/cgi-bin">
    AllowOverride All
    Options None
    Order allow,deny
    Allow from all
</Directory>


 Putting this all together, we can internationalize error responses.
#
# We use Alias to redirect any /error/HTTP_<error>.html.var response to
# our collection of by-error message multi-language collections.  We use 
# includes to substitute the appropriate text.
#
# You can modify the messages' appearance without changing any of the
# default HTTP_<error>.html.var files by adding the line:
#
#   Alias /error/include/ "/your/include/path/"
#
# which allows you to create your own set of files by starting with the
# @exp_errordir@/include/ files and copying them to /your/include/path/, 
# even on a per-VirtualHost basis.  The default include files will display
# your Apache version number and your ServerAdmin email address regardless
# of the setting of ServerSignature.
#
# The internationalized error documents require mod_alias, mod_include
# and mod_negotiation.  To activate them, uncomment the following 30 lines.

#    Alias /error/ "@exp_errordir@/"
#
#    <Directory "@exp_errordir@">
#        AllowOverride None
#        Options IncludesNoExec
#        AddOutputFilter Includes html
#        AddHandler type-map var
#        Order allow,deny
#        Allow from all
#        LanguagePriority en cs de es fr it nl sv pt-br ro
#        ForceLanguagePriority Prefer Fallback
#    </Directory>
#
#    ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
#    ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
#    ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
#    ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
#    ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
#    ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
#    ErrorDocument 410 /error/HTTP_GONE.html.var
#    ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
#    ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
#    ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
#    ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
#    ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
#    ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
#    ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
#    ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
#    ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
#    ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var

Ich bin mir nciht sicher, dass da der Fehler liegt, aber ansosnten fällt mir da nicht ein (und das ist leider so garnicht mein Gebiet, insofern entschuldigt bitte die viele Codeschnipsel).

Die Webseiten ansich liegen auf einem Pfad in D:, funktionieren ansonsten aber alle einwandfrei.

Wie oben schon angemerkt, werden die Seiten durch Plesk 8.4 verwaltet.

Hoffe hier kann mir endlich jemand helfen.

Mit besten Grüßen,
frohe Ostern wünschend,
Richard

11.04.2009 18:48

2 Jörg

In dieser Pfad-Angabe sind Slashes und Backslashes gemischt:

DocumentRoot "C:\Program Files (x86)\Plesk\admin/htdocs"

Keine Ahnung, ob das hier ein Problem verursacht, aber ich würde einheitlich Slashes oder Backslashes verwenden.

Wenn ich dich richtig vertstanden habe, hast du diesen Code in der .htaccess probiert:

RewriteEngine On
RewriteBase /test
RewriteRule ^test-2\.html$ test-1\.html [L]

Was passierte beim Aufruf von http://lokalhost/test/test-2.html - gab es eine Fehlermeldung?

11.04.2009 19:55

3 Richard (Gast)

Moin Jörg, danke für die schnelle Antwort!

also die Angaben bei DocumentRoot sind alle von der Standardinstallation von Strato... glaub nicht das es daran liegt
aber die Webseiten ansich liegen auf D: und nicht auf C: .. deswegen die Überlegung

hab das mit der besagten .htaccess probiert und es passiert einfach garnichts... also zeigt seite test-2.html an - keine Fehlermeldung

Gruß

11.04.2009 20:17

4 Richard (Gast)

habs mit den Schrägstrichen nochmal getrstet - daran langs auf jeden Fall nicht (sry für Doppelpost)

11.04.2009 21:31

5 Jörg

aber die Webseiten ansich liegen auf D: und nicht auf C:

Die Webseiten verfügen vermutlich über eigene Konfigurationsdateien. Um welche Apache-Version handelt es sich? Unter dem Linux-Apache 2.2 können diese Konfiguartionsdateien z.B. in einem extra Verzeichnis mit dem Namen "vhosts.d" oder "sites-available" liegen. Bei Windows bin ich da nicht mehr auf dem neuesten Stand

11.04.2009 21:44

6 Filaron

Apache Tomcat 5.5 is am laufen

im Verzeichnis C:\Program Files (x86)\Plesk\Additional\Tomcat liegen folgende Unterordner:
bin
common
conf
logs
psa-wars
psa-webapps
server
shared
temp
webapps
work


conf hab ich eben mal reingeschaut aber zumindest beim schnelldurchguckennichts passendes finden können... wenn ich weiß wonach genau ich suchen müsstewürds das erheblich vereinfachen... aber conf kann ja schonmal ned so ganz falsch sein

11.04.2009 22:36

7 Jörg

Läuft der Tomcat nicht separat zum eigentlichen Apache-Server?

Du musst halt schauen wo der DocumentRoot als "D:\irgend\ein\pfad" definiert ist.

Wenn die Webseiten (VirtualHosts) über eine eigene Konfiguration verfügen, muss man möglicherweise dort auch nochmal explizit die Direktiven in der .htaccess erlauben ("AllowOverride All")

11.04.2009 22:51 | geändert: 11.04.2009 22:52

8 Filaron

also auf dem Server findet man im Zusammenhang zum Apache immer nur was mit Tomcat... deswegen bin ich davon ausgegangen, dass das zusammenhängt (ist auch zusammen im Plesk aufgeführt).

Die Webseiten liegen im Ordner vhosts auf D:
da entsprechend für jede Seite drinne ein Ordner - in den httpdocs spezifisch dazu gibt es jeweis die web.config Dateien von Windows (was ja quasi der .htaccess für Win ist) liegt.

die schauen dann z.B. so aus

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <handlers>
            <clear />
            <add name="Plesk_Handler_018957192" path="*.php" verb="*" modules="CgiModule" scriptProcessor="c:\program files (x86)\plesk\additional\php\php.exe" resourceType="Either" />
            <add name="Plesk_Handler_018957258" path="*.php3" verb="*" modules="CgiModule" scriptProcessor="c:\program files (x86)\plesk\additional\php\php.exe" resourceType="Either" />
            <add name="Plesk_Handler_018957259" path="*.phtml" verb="*" modules="CgiModule" scriptProcessor="c:\program files (x86)\plesk\additional\php\php.exe" resourceType="Either" />
            <add name="Plesk_Handler_018957260" path="*.cgi" verb="GET,HEAD,POST" modules="CgiModule" scriptProcessor="c:\program files (x86)\plesk\additional\perl\bin\perl.exe &quot;%s&quot; %s" resourceType="Either" />
            <add name="Plesk_Handler_018957261" path="*.pl" verb="GET,HEAD,POST" modules="CgiModule" scriptProcessor="c:\program files (x86)\plesk\additional\perl\bin\perl.exe &quot;%s&quot; %s" resourceType="Either" />
            <add name="Plesk_Handler_018957262" path="*.plx" verb="GET,HEAD,POST" modules="IsapiModule" scriptProcessor="c:\program files (x86)\plesk\additional\perl\bin\perlis.dll" resourceType="Either" />
            <add name="Plesk_Handler_018957263" path="*.py" verb="*" modules="CgiModule" scriptProcessor="c:\program files (x86)\plesk\additional\python\python.exe -u &quot;%s&quot; %s" resourceType="Either" />
            <add name="Plesk_Handler_018957266" path="*" verb="TRACE" modules="ProtocolSupportModule" resourceType="File" />
            <add name="Plesk_Handler_018957268" path="*.dll" verb="*" modules="IsapiModule" resourceType="File" requireAccess="Execute" allowPathInfo="true" />
            <add name="Plesk_Handler_018957269" path="*.exe" verb="*" modules="CgiModule" resourceType="File" requireAccess="Execute" allowPathInfo="true" />
            <add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" />
        </handlers>
    </system.webServer>
</configuration>


aber ob da jetzt der Zusammenhang ist...



Die Seiten test-1.html udn test-2.html hab ich auf einer Domain platziert und in dem Testordner mit einer .htaccess untergebracht (die den entsprechenden Testinhalt hat).
Da ich diese Dateien nur mit den Ftpzugangsdaten aufrufen kann, scheint ja zumindest die .htaccess erkannt zu werden

11.04.2009 23:02

9 Jörg

da entsprechend für jede Seite drinne ein Ordner - in den httpdocs spezifisch dazu gibt es jeweis die web.config Dateien von Windows (was ja quasi der .htaccess für Win ist) liegt.

Die Seiten werden aber vom Apache ausgeliefert und nicht vom IIS?

Wenn der Apache die Seiten ausliefert, musst du wie gesagt die Konfiguration für den betreffenden VirtualHost (Domain) finden. In welchem Pfad liegt denn die httpd.conf, aus der du in deinem ersten Beitrag kopiert hast. Gibt es dort keine weiteren Konfigurationsdateien?

Da ich diese Dateien nur mit den Ftpzugangsdaten aufrufen kann, scheint ja zumindest die .htaccess erkannt zu werden

Das heißt bei einem Aufruf über den Browser wird eine 403 ausgegeben?

11.04.2009 23:17 | geändert: 11.04.2009 23:18

10 Filaron

also letzteres nehm ich schonmal zurück ;) hatte mit der .htaccess nichts zu tun (ging auch ohne nicht)


Die Seiten werden aber vom Apache ausgeliefert und nicht vom IIS?

Da bin ich mir nicht sicher - wie kann ich das herausfinden?

Die httpd.conf befindet sich in C:\Program Files (x86)\Plesk\admin\conf - also im Zusammenhang mit Plesk und nicht unbedingt mit Apache bzw Tomcat, wobei das wiederum in Plesk implementiert ist (und in einem Unterordner von Plesk zu finden ist).
Ich hab beide Festplatten durchsucht - das ist die einzige Datei die httpd.conf heißt!

in dem Apacheordner im Plesk gibt es eine Menge .xml und .properties Dateien - aber mit denen kann ich wie gesagt wenig anfangen

11.04.2009 23:24