Directoryindey, merkwürdige weiterleitunsverhalten

faruk

New Member
Hallo,

ich habe vor einer Woche mein V-Server (Strato) neu aufsetzen müssen.
Habe nun Suse 10.3 mit Plesk installiert.

Nun ist mir ein Merkwürdigkeit in Sachen Directoryindex verhalten aufgefallen.
Wenn man auf meine Seite über ein Link von irgendeiner anderen seite reinkommt welches mich nur wie folgt gelinkt hat „ Hobbyphotographen.de | Portal „ dann wird es auf Hobbyphotographen.de | Startseite weitergeleitet.
Geht man aber auf meine Seite über die Lesezeichen eines Browser'soder durch eintippen in die Browseradresszeile Hobbyphotographen.de | Portal wird man so wie von mir gewünscht auf Hobbyphotographen.de | Portal weitergeleitet.

Diese Weiterleitung habe ich im docroot über die .htaccess mit folgender Zeile realisiert.

Code:
DirectoryIndex jgs_portal.php index.php index.html

Reicht denn diese Zeile in dem htaccess nicht aus damit es immer zum Portal weiterleitet wenn man mit dem Domain reinkommt ohne weitere zusätze

Wenn dieses verhalten vor dem neu aufsetzen gewesen wäre dann wäre es mir sicherlich aufgefallen.

Woher könnte das kommen?Müsste ich wirklich die neue Index anweisung in die Datei Vhost.conf einfügen?

Gruß
faruk
 
Last edited by a moderator:
Hallo,

Der DirectoryIndex gibt nur an, welche Datei geladen wird, wenn keine Datei in der URL angegeben ist. Das ist aber keine Weiterleitung, denn der Benutzer sieht dadurch nicht, welche Datei er bekommen hat. Standartmäßig steht dies auf index.php und index.html oä.

Wenn du eine Weiterleitung möchtest, dann schreib das in deine htaccess:

Code:
Redirect / http://www.hobbyphotographen.de/jgs_portal.php

Das müsste dazu führen, dass alle Anfragen auf / auf die jgs_portal.php Seite weitergeleitet werden.

Warum allerdings nur beim manueller Aufruf deiner Seite der DirectoryIndex auf jgs_portal.php zeigt und ein Aufruf über einen Link auf die index.php führt, weiß ich allerdings nicht.
 
Wenn du eine Weiterleitung möchtest, dann schreib das in deine htaccess:

Code:
Redirect / http://www.hobbyphotographen.de/jgs_portal.php

Das müsste dazu führen, dass alle Anfragen auf / auf die jgs_portal.php Seite weitergeleitet werden.

Verzeihung, ich glaube ich habe mich nicht korrekt ausgedrückt.
Ich möchte keine Weiterleitung erreichen sondern es soll wenn in der Adresszeile die man aufgerufen hat keine Datei mit angegeben ist das dann zuerst versucht wird jgs_portal.php zu laden dann index.php und dann die html Index Datei.

leider funktioniert die Redirect Anweisung nicht, es werden hinter dem domain in einem endlos Loop die Dateiname "jgs_portal.php" eingesetzt.

leider funktioniert auch nicht das ich meine DirectoryIndex Anweisung in die Datei Vhost.conf einsetzen kann, es verhält sich wie vorher auch.
 
Hallo!
Das einzige, was mir dazu einfällt, ist ein Auszug auf der Apache Dokumentation:
http://httpd.apache.org/docs/2.0/mod/mod_dir.html said:
The DirectoryIndex directive sets the list of resources to look for, when the client requests an index of the directory by specifying a / at the end of the directory name.
Scheint bei dir aber anhand des Beispiels nicht zuzutreffen. Eventuell probierst du es trotzdem nochmals aus.

mfG
Thorsten
 
es soll wenn in der Adresszeile die man aufgerufen hat keine Datei mit angegeben ist das dann zuerst versucht wird jgs_portal.php zu laden dann index.php und dann die html Index Datei.
Das sollte mit deiner DirectoryIndex-Seite genau so passieren. Wenn es das nicht tut, poste bitte die beiden Verweise nochmal so, dass vBulletin die nicht automatisch zu Links macht.
Dazu einen relevanten Auszug aus der entsprechenden Config. Die Konfigurationsdirektiven müssen immer im Kontext betrachtet werden.
 
leider funktioniert die Redirect Anweisung nicht, es werden hinter dem domain in einem endlos Loop die Dateiname "jgs_portal.php" eingesetzt.

Oh sry, mein Fehler. Hatte irgendwie in Erinnerung, dass nur RedirectMatch im Zusammenspiel mit Regulären Ausdrücken alle Aufrufe umleitet.

Aber Redirect leitet anscheinend auch alle Dateiaufrufe weiter. Das landet natürlich in einen Loop. ;-)


Ich hab mal in einem anderen Forum gelesen, dass der DirectoryIndex nur funktioniert hat, wenn in der Hauptconfig außerhalb der VirtualHosts kein DirectoryIndex angegeben ist.

Als Lösung kannst du die DirectoryIndexes innerhalb eines Directory-Tags verwenden:
Code:
<DIRECTORY /Pfad/auf/Server/zum/http-Verzeichnis>
OPTIONS Indexes FollowSymLinks
AllowOverride All
DirectoryIndex jgs_portal.php index.php index.html
</DIRECTORY>

Probier das mal aus.

Edit: Hab den Link noch gefunden: http://www.forum.psoft.net/archive/index.php/t-9351.html
 
Weitere versuche werde ich heute Abend nach der Arbeit machen.

aber hier mal die configs von mir.

erstmal der link ohne Vbulettin Wandlung

HTML:
http://www.hobbyphotographen.de

wenn man den Manuel in die Adresszeile eingibt ist alles so wie ich es haben möchte, aber ist dieser so irgendwo im Internet verlinkt wird man anstatt in den Portal eben in die index.php verweist anstatt wie im DirctoryIndex Directive angegeben zuerst an den jgs_portal.php

Auszug aus mein apache2 config:
Code:
APACHE_MODULES="alias auth_basic authn_file authz_host authz_groupfile authz_default authz_user autoindex cgi dir env log_config mime setenvif ssl php5 suexec rewrite status"
hier habe ich nicht mehr verändert als das, ich habe ein wneig entschlackt da ich auf ein VServer sitze der nur 258MB hat.

Hier mein mod_autoindex-defaults.conf:
Code:
#
# Directives controlling the display of server-generated directory listings.
#
# see http://httpd.apache.org/docs-2.2/mod/mod_autoindex.html
#

<IfModule mod_autoindex.c>

	IndexOptions FancyIndexing VersionSort NameWidth=*

	# Add Last-Modified and ETag values for the listed directory in the HTTP header, 
	# based on files' modification dates
	#IndexOptions +TrackModified

	AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip

	AddIconByType (TXT,/icons/text.gif) text/*
	AddIconByType (IMG,/icons/image2.gif) image/*
	AddIconByType (SND,/icons/sound2.gif) audio/*
	AddIconByType (VID,/icons/movie.gif) video/*

	AddIcon /icons/binary.gif .bin .exe
	AddIcon /icons/binhex.gif .hqx
	AddIcon /icons/tar.gif .tar
	AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
	AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
	AddIcon /icons/a.gif .ps .ai .eps
	AddIcon /icons/layout.gif .html .shtml .htm .pdf
	AddIcon /icons/text.gif .txt
	AddIcon /icons/c.gif .c
	AddIcon /icons/p.gif .pl .py
	AddIcon /icons/f.gif .for
	AddIcon /icons/dvi.gif .dvi
	AddIcon /icons/uuencoded.gif .uu
	AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
	AddIcon /icons/tex.gif .tex
	AddIcon /icons/bomb.gif core

	AddIcon /icons/back.gif ..
	AddIcon /icons/hand.right.gif README
	AddIcon /icons/folder.gif ^^DIRECTORY^^
	AddIcon /icons/blank.gif ^^BLANKICON^^

	DefaultIcon /icons/unknown.gif

	ReadmeName README.html
	HeaderName HEADER.html

	IndexIgnore .??* *~ *# HEADER* RCS CVS *,v *,t

</IfModule>
den habe ich gar nicht verändert

Hier mein httpd.include im conf Ordner des Domain Hobbbypgotographen.de:
Code:
# ATTENTION!
# DO NOT MODIFY THIS FILE OR ANY PART OF IT. THIS CAN RESULT IN IMPROPER PLESK
# FUNCTIONING OR FAILURE, CAUSE DAMAGE AND LOSS OF DATA. IF YOU REQUIRE CUSTOM
# MODIFICATIONS TO BE APPLIED TO THE CONFIGURATION, PLEASE, PERFORM THEM IN THE
# FOLLOWING FILE(S):
# /srv/www/vhosts/hobbyphotographen.de/conf/vhost.conf
# /srv/www/vhosts/hobbyphotographen.de/subdomains/<subdomain-name>/conf/vhost.conf

<VirtualHost 85.214.106.20:80>
	ServerName   hobbyphotographen.de:80
	ServerAlias  www.hobbyphotographen.de
	UseCanonicalName Off
	SuexecUserGroup         xxxxx psacln
	DocumentRoot /srv/www/vhosts/hobbyphotographen.de/httpdocs
	CustomLog  /srv/www/vhosts/hobbyphotographen.de/statistics/logs/access_log plesklog
	ErrorLog  /srv/www/vhosts/hobbyphotographen.de/statistics/logs/error_log
<IfModule mod_userdir.c>
	UserDir /srv/www/vhosts/hobbyphotographen.de/web_users
</IfModule>
	ScriptAlias  /cgi-bin/ /srv/www/vhosts/hobbyphotographen.de/cgi-bin/
	Alias  /plesk-stat /srv/www/vhosts/hobbyphotographen.de/statistics/
	<Location  /plesk-stat/>
		Options +Indexes
	</Location>
	<Location  /plesk-stat/logs/>
		Require valid-user
	</Location>
	Alias  /webstat /srv/www/vhosts/hobbyphotographen.de/statistics/webstat
	Alias  /webstat-ssl /srv/www/vhosts/hobbyphotographen.de/statistics/webstat-ssl
	Alias  /ftpstat /srv/www/vhosts/hobbyphotographen.de/statistics/ftpstat
	Alias  /anon_ftpstat /srv/www/vhosts/hobbyphotographen.de/statistics/anon_ftpstat
	Alias  /awstats-icon /usr/share/apache2/icons/awstats/icon
	<IfModule mod_ssl.c>
		SSLEngine off
	</IfModule>
	<Directory /srv/www/vhosts/hobbyphotographen.de/httpdocs>
	<IfModule sapi_apache2.c>
		php_admin_flag engine on
		php_admin_flag safe_mode off
		php_admin_value open_basedir "/srv/www/vhosts/hobbyphotographen.de/httpdocs:/tmp"
	</IfModule>
	<IfModule mod_php5.c>
		php_admin_flag engine on
		php_admin_flag safe_mode off
		php_admin_value open_basedir "/srv/www/vhosts/hobbyphotographen.de/httpdocs:/tmp"
	</IfModule>
		Options -Includes +ExecCGI
	</Directory>
	<Directory /srv/www/vhosts/hobbyphotographen.de/web_users>
	<IfModule sapi_apache2.c>
		php_admin_flag engine off
	</IfModule>
	<IfModule mod_php5.c>
		php_admin_flag engine off
	</IfModule>
	</Directory>
	<Directory "/srv/www/vhosts/hobbyphotographen.de/statistics">
		AuthType Basic
		AuthName "Domainstatistiken"
		AuthUserFile /srv/www/vhosts/hobbyphotographen.de/pd/d..httpdocs@plesk-stat
		require  valid-user
	</Directory>
	Include /srv/www/vhosts/hobbyphotographen.de/conf/vhost.conf
</VirtualHost>

und schlussendlich mein vhost.conf:
Code:
DirectoryIndex jgs_portal.php index.php index.html
 
Last edited by a moderator:
Ich kann in den von dir geposteten Configs keine DirectoryIndex-Direktive finden. :confused:

er hat das ja auch über eine .htaccess gemacht.

Vielleicht sollte er es aber mal über die config-files probieren. Das schaut aber sehr nach Plesk aus, von daher weiß ich nicht, welche Files man da editieren muss, da ich selbst Plesk nicht verwende.

Wobei das Gepostete sicher nicht die vhost.conf ist, denn diese würde sich in einer Schleife selbst includen.
 
Achso. Sowas gehört für mich nicht nach .htaccess. Deshalb habe ich das wohl überlesen.
Wenn der Webserver nicht der Meinung ist, es sei das Verzeichnis explizit ausgewählt worden, kann da was ganz anderes passieren.
Wie z.B. dass die globale Konfiguration greift und es genau das Verhalten hervor ruft, dass beobachtet worden ist.

In einer .htaccess würde ich das über eine RewriteRule lösen.
Code:
RewriteEngine On
RewriteRule ^/?$ /jgs_portal.php
 
Wobei das Gepostete sicher nicht die vhost.conf ist, denn diese würde sich in einer Schleife selbst includen.

das ist richtig..
habe httpd.include da fälschlicherweise gpastet.
ich habe es nun korrigiert.

es ist egal wo ich den einbaue ob ich in vhost.conf oder in einem htacess. es reagiert in beiden fällen gleich.
 
Wie bereits in Beitrag #10 von elias erwähnt hast du wahrscheinlich eine globale Konfiguration, die uU nur bei bestimmten Bedingungen benutzt wird.

In Beitrag #6 wollte ich auch darauf hinaus, hab mich aber etwas unglücklich ausgedrückt. Wenn du den geposteten Link ansiehst, wirst du feststellen, dass die dort ein ähnliches Problem hatten. Der vorgeschlagene Lösungsweg DirectoryTags zu setzen, soll angeblich helfen, hab ich aber bisher nicht getestet.

Du kannst natürlich auch versuchen, den DirectoryIndex in deiner globales Apache-ConfigFile hinzuzufügen.
 
Der vorgeschlagene Lösungsweg DirectoryTags zu setzen, soll angeblich helfen, hab ich aber bisher nicht getestet.

Du kannst natürlich auch versuchen, den DirectoryIndex in deiner globales Apache-ConfigFile hinzuzufügen.

Weder das eine noch das andere hat Abhilfe geschafft...

Ich dachte mir vielleicht ein update von apache 2.2.4 auf 2.2.9 könnte helfen.. man klammert sich ja im not an manch einen unwahrscheinlichen Lösungsweg.
Aber dann schmiert Apache komplett ab und lässt sich nicht mehr starten.
Aber das es an der Apache Version liegt ist denke ich eher als unwahrscheinlich zu titulieren.
 
Back
Top