Apache führt keine htaccess aus

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

Apache führt keine htaccess aus

Postby kobe » 28. November 2009 12:23

Hallo

Ich habe Ubuntu 9.10 und Apache/2.2.12 (Ubuntu) (laut phpinfo).
Bei mir wird keine .htaccess ausgewertet. Ich habe testweise Müll reingeschrieben und es kommt kein Fehler!

Die httpd.conf war leer, ich habe
Code: Select all
$ cat httpd.conf
<Directory />
Options FollowSymLinks
AllowOverride All
AllowOverride AuthConfig
</Directory>
$ grep "httpd.conf" apache2.conf -B 1 -A 1
# Include all the user configurations:
Include /etc/apache2/httpd.conf
$ grep "htacces" apache2.conf
AccessFileName .htaccess
# The following lines prevent .htaccess and .htpasswd files from being


Ich habe keine Ahnung, warum keine htaccess ausgewertet wird:
Code: Select all
$ cat index.php
<?php

echo "Hello : ".$_GET['id']."<br>";

?>

$ cat .htaccess
Order deny,allow
Deny from all

muell

<IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteRule ^/shortcut$ /complicated/and/way/too/long/url/here
        RewriteRule ^/index.php$ index.php?id=99
        RewriteRule ^index.php$ index.php?id=99
        RewriteRule index.php$ index.php?id=99
        RewriteRule index.php index.php?id=99
        RewriteRule ^/$ index.php?id=99
        RewriteRule ^/foobar$ index.php?id=99
        RewriteLog "/var/www/foobar/rewrite.log"
</IfModule>

Diese index.php wird problemlos ausgeführt.

Kann mir jemand bitte helfen?

Gruß
Kobe
kobe
 
Posts: 8
Joined: 07. October 2009 11:33

Re: Apache führt keine htaccess aus

Postby Nobbie » 28. November 2009 15:04

Code: Select all
AllowOverride All
AllowOverride AuthConfig


Was soll dieser Doppeleintrag? Lösche mal den zweiten, dann klappts auch mit .htaccess
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04

Re: Apache führt keine htaccess aus

Postby kobe » 28. November 2009 18:12

Der Doppeleintrag ist draußen und es klappt immer noch nicht.

Ich habe was über "Wie ist der Apache denn konfiguriert? ... VirtualHosts ... ?" gelesen. Ich habe dazu aber nichts bei mir gefunden und es ist nur eine Standardinstallation.

//edit
Bin weiter: In der /etc/apache2/sites-enabled/000-default steht alles wichtige, die httpd.conf ist erstmal sekundär. Wenn ich da ein AllowOverride All gesetzt habe, kam es schon mal zum Fehler. Siehe http://www.selfphp.de/forum/showthread.php?t=20749
kobe
 
Posts: 8
Joined: 07. October 2009 11:33

Re: Apache führt keine htaccess aus

Postby kobe » 29. November 2009 00:24

Abschließende noch 2 Fragen dazu:

In der /etc/apache2/sites-enabled/000-default steht
Code: Select all
    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride All
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>


Wenn also /var/www das Wurzelverzeichnis für den Apache ist, wieso wird zwischen / und /var/www unterschieden? Kann der Apache Seiten ausliefern, die nicht unter /var/www , sondern bspw /foo/bar liegen?? Ich verstehe das so, dass der Apache ausschließlich unter /var/www arbeitet.

Code: Select all
/etc/apache2$ grep -n httpd.conf apache2.conf
207:Include /etc/apache2/httpd.conf
/etc/apache2$ grep -n sites-enabled apache2.conf
235:Include /etc/apache2/sites-enabled/

Wieso wird die httpd.conf eher eingebunden bevor die sites-enabled/000-default ? Dadurch werden die Einstellungen (zB AllowOverride All) in der httpd.conf wieder überschrieben bzw. nichtig gemacht. Oder welche Einstellungen sollte man in die httpd.conf reinschreiben? Bis gestern dachte ich, dass die httpd.conf DIE Konfigurationsdatei für einen Admin ist. Nun musste ich feststellen, dass es mind. 3 solcher Dateien gibt.
kobe
 
Posts: 8
Joined: 07. October 2009 11:33

Re: Apache führt keine htaccess aus

Postby Nobbie » 29. November 2009 13:15

kobe wrote:Kann der Apache Seiten ausliefern, die nicht unter /var/www , sondern bspw /foo/bar liegen??]


Ja. Beispielsweise mit Hilfe der "Alias" Direktive.

kobe wrote:Ich verstehe das so, dass der Apache ausschließlich unter /var/www arbeitet.


Nö. Das ist nur der "DocumentRoot" (das Wurzelverzeichnis). Aber sowohl mit Alias als auch mit ScriptAlias (ist sicherlich auch bei Dir aktiv) kann man Dateien aus anderen Ordnern ausliefern.

Außerdem gibt es auch noch die Möglichkeit, mit Hilfe von VirtualHosts mehrere verschiedene DocumentRoots zu definieren.

kobe wrote:Wieso wird die httpd.conf eher eingebunden bevor die sites-enabled/000-default ?


"Eher" ist die falsche Bezeichnung: es wird nur die httpd.conf eingebunden. Nichts sonst. Und in der httpd.conf stehen (bei einigen Linux-Distributionen) dann seinerseits includes auf andere Konfigurationsdateien. Wobei bei manchen Distributionen statt httpd.conf eine apache2.conf eingebunden wird. Wichtig ist nur zu wissen: aus Sicht von Apache gibt es nur eine einzige Konfigurationsdatei.

kobe wrote:Dadurch werden die Einstellungen (zB AllowOverride All) in der httpd.conf wieder überschrieben bzw. nichtig gemacht. Oder welche Einstellungen sollte man in die httpd.conf reinschreiben? Bis gestern dachte ich, dass die httpd.conf DIE Konfigurationsdatei für einen Admin ist. Nun musste ich feststellen, dass es mind. 3 solcher Dateien gibt.


Diese Fragen mußt Du alle an das Ubuntu Team stellen, die haben sich für diese Struktur entschieden. Hättest Du Xampp installiert (Du bist hier ja auch im Xampp Forum!), dann sähe die Struktur anders aus. Gemeinsam ist aber allen Distributionen: Apache bindet nur eine einzige Datei ein, alles andere wird durch den Inhalt der httpd.conf veranlasst (bzw. apache2.conf).

Die grundsätzliche Idee bei den Linux Distributionen (und auch bei Xampp) ist es, die Konfigurationsdatei aufzusplitten und semantisch den speziellen Modulen zuzuordnen, die für das Funktionieren bestimmter DIrektiven zuständig sind. Das ist aber alles nur eine Empfehlung - Du brauchst Dich da nicht dran zu halten. Du kannst auch Deine eigene httpd.conf schreiben und schreibst dort ALLES hinein, was Du für Apache und Deine Webseite benötigst. Das war bis vor einigen Jahren sogar der Normalfall, aber da Apache immer umfangreicher und leistungsfähiger wird, ist diese Datei natürlich immer größer geworden, so dass man irgendwann angefangen hat, die einzelnen Direktiven auf "Unterdateien" zu verteilen. Eine Pflicht besteht dafür aber nicht.
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04

Re: Apache führt keine htaccess aus

Postby kobe » 29. November 2009 19:33

Vielen Dank Nobbie.
kobe
 
Posts: 8
Joined: 07. October 2009 11:33


Return to Apache

Who is online

Users browsing this forum: No registered users and 133 guests