Apache - Startseite festlegen
Sympathisant
- webserver
0 MudGuard0 Sympathisant0 Sympathisant0 MudGuard
0 hotti0 Sympathisant0 hotti0 Sympathisant0 hotti
Guten Morgen,
ich habe Probleme dem Apache mitzuteilen, welche Seite er beim initialen Aufruf anzeigen soll.
Mein Aufbau ist wie folgt:
www.example.org
|- sources
|- view
|- index.html
Mein Ziel ist es, beim Aufruf von www.example.org direkt auf die index.html zu verweisen.
Meine derzeitige .htaccess:
RewriteEngine on
AddType application/x-httpd-php .html
RewriteRule ^([^/]+.html)$ sources/view/$1 [L]
Spiele ich jetzt mit
DirectoryIndex sources/view/index.html
herum, so bekomme ich nicht das gewuenschte Ergebnis.
Gleiche gilt fuer
DirectoryIndex index.html
oder
DirectoryIndex /index.html
and so on.
Kann das sein, dass der DirectoryIndex _vor_ den RewriteRules verarbeitet wird?
Wie kann ich das entsprechend konfigurieren?
Besten Dank im Voraus.
MfG,
Sympatisant
Hi,
ENABLE REWRITE ENGINE
RewriteEngine on
PARSE HTML-FILES AS PHP
AddType application/x-httpd-php .html
LOOK IN "/SOURCES/VIEWS" FOR THE WEBPAGES
RewriteRule ^([^/]+.html)$ sources/view/$1 [L]
Huch?
Warum setzt Du nicht das DocumentRoot auf dieses Verzeichnis?
cu,
Andreas
Hai Andreas,
Huch?
Warum setzt Du nicht das DocumentRoot auf dieses Verzeichnis?
Ich nehme an, dass ist eine gute Frage ;)
Das heisst, meine RewriteRule entfaellt
RewriteRule ^([^/]+.html)$ sources/view/$1 [L]
Statt dessen schreibe ich
DocumentRoot /sources/view
Doch wenn ich dann
http://www.example.com/index.html
aufrufe, bekomme ich einen 500er.
Das Log zeigt mir auch, dass er tatsaechlich auf o.g. Resource zugreifen moechte.
MfG,
Sympatisant
Hai,
Statt dessen schreibe ich
DocumentRoot /sources/view
Hm, wenn ich http://httpd.apache.org/docs/1.3/mod/core.html.en#documentroot richtig verstehe, geht das ja auch gar nicht ueber die .htaccess.
Ich wuerde das jedoch gerne ueber die .htaccess regeln. Da ich nicht weisz, ob mein zukuenftiger Provider andere Moeglichkeiten bieten wird.
Prinzipiell funktioniert ja alles so wie ich es moechte - bis auf das Problem mit der Startseite.
MfG,
Sympatisant
Hi,
Statt dessen schreibe ich
DocumentRoot /sources/view
Hm, wenn ich http://httpd.apache.org/docs/1.3/mod/core.html.en#documentroot richtig verstehe, geht das ja auch gar nicht ueber die .htaccess.
Richtig, das muß in der httpd.conf angegeben werden. Und es muß natürlich der absolute Pfad angegeben werden, nicht nur ein Teil davon.
cu,
Andreas
Hai Andreas,
danke fuer deine Antworten.
Richtig, das muß in der httpd.conf angegeben werden. Und es muß natürlich der absolute Pfad angegeben werden, nicht nur ein Teil davon.
Aus o.g. Gruenden wuerde ich gerne bei der .htaccess bleiben.
Gibt es in meinem Fall eine Alternative zur Festlegung der Startseite?
MfG,
Sympatisant
moin,
Kann das sein, dass der DirectoryIndex _vor_ den RewriteRules verarbeitet wird?
Wo die Zeile steht, ist egal.
Wie kann ich das entsprechend konfigurieren?
Jahaha, wenn Du mit Rewrite arbeitest, darf DirectoryIndex nicht auf das zeigen, was rewrited wird, sondern muss auf das target der RewriteRule zeigen.
Hotte
Hai Hotte,
ich weisz nicht, ob du diesen Thread weiter unten verfolgt hast.
Dort erwaehnte ich, dass ich das gerne ueber .htaccess regeln moechte.
Jahaha, wenn Du mit Rewrite arbeitest, darf DirectoryIndex nicht auf das zeigen, was rewrited wird, sondern muss auf das target der RewriteRule zeigen.
..und das hoert sich jetzt wieder so an, als ob es doch ginge?
Korrigiere mich, aber den DirectoryIndex kann man nicht in der htaccess definieren.. wenn ich die Doku und die Aussage von Andreas korrekt verstanden habe.
Heattest du vllt. eine Idee wie ich das in meinem Fall loesen koennte?
Besten Dank.
MfG,
Sympatisant
hi Du Insulaner,
Heattest du vllt. eine Idee wie ich das in meinem Fall loesen koennte?
Naja, ich zeig Dir mal meine .htaccess :-)
=============== schnipp =============================
DirectoryIndex /cgi-bin/show.cgi?html
RewriteEngine on
RewriteRule ^(.*).html$ /cgi-bin/show.cgi?html
=============== schnapp =============================
Da wird alles, was an *.html angefordert wird auf ein Script umgeschossen. Der DirectoryIndex auch. Zum Testen hab ich mal gesetzt:
DirectoryIndex /index.html
und die "index.html" wird dann nicht gefunden, weil es die gar nicht gibt.
Aber ich muss Dir alles sagen. Wenn ein Request auf "http://example.com" geht, steht in REQUEST_URI => "/". Mein Script show.cgi lädt ein Modul, was auch in REQUEST_URI schaut und falls da "/" drinsteht, wird das da gemacht:
$ENV{REQUEST_URI} = '/index.html' if $ENV{REQUEST_URI} eq '/';
Und alles wird gut. Ich hoffe, Dir hilfts ein bischen, mach das Beste daraus.
Hotte
Hai Hotte,
hi Du Insulaner
Hehe ;-)
Mir ist aufgefallen, dass ich in dem vorherigen Posting DocumentRoot mit DirectoryIndex verwechselt habe.
Besten Dank fuer dein Beispiel!
Ich werde allerdings erst am Samstag dazu kommen, das mal auszuprobieren.
Falls ich dann noch auf Probleme stoszen sollte, wirst du ggfs. nochmal von mir hoeren ;-)
Und alles wird gut. Ich hoffe, Dir hilfts ein bischen, mach das Beste daraus.
"If the Future isn't bright, at least, it is colorful" ;)
MfG,
Sympatisant
hi,
Mir ist aufgefallen, dass ich in dem vorherigen Posting DocumentRoot mit DirectoryIndex verwechselt habe.
Macht nüschd, mir egal ;-)
Ich werde allerdings erst am Samstag dazu kommen, das mal auszuprobieren.
Falls ich dann noch auf Probleme stoszen sollte, wirst du ggfs. nochmal von mir hoeren ;-)
Gerne. Ja, lass mal hören.
"If the Future isn't bright, at least, it is colorful" ;)
Mein Englisch ist so kaputt wie Deine Tastatur. Egal, hauptsache bunt ;)
Und mach Fotos von der Mieze...
Viele Grüße,
Horst Haselhuhn
Hai Hotti,
also halbwegs klappt dein Vorschlag bereits ;)
RewriteRule ^([^/]+.html)$ sources/handler/RequestHandler.php?type=html
Und im RequestHandler reagiere ich dann dementsprechend.
Allerdings wuerde ich gerne, dass er auch URLs ala
www.example.org/word/letter/test.html
ueber den RequestHandler jagt.
Mit oben genanntem Ausdruck (und auch aus deinem Beispiel) funktionieren keine verschachtelten Seitenaufrufe.
Da muss wohl noch was an der Regular Expression geschraubt werden..
MfG,
Sympatisant