huffman
Goto Top

.htaccess richtig verwenden

Schönen Nachmittag,

ich bin gerade dabei meinen Apache 2.2 Server unter Debian für eine .htaccess Datei zu konfigurieren.

Zur Zeit konfiguriere ich die .htaccess für eine Subdomain, für meine Domain hat bereits alles funktioniert, ich habe zwar die Einstellungen von der funktionierenden Domain 1:1 für die Subdomain übernommen aber es hat leider nicht funktioniert.

Und zwar sieht meine Verzeichnisstruktur am Webserver so aus:

/var/www/site1/
/var/www/site2/
/var/www/site3/

Für jeden dieser Verzeichnisse existiert eine Subdomain.

Das Verzeichnis /var/www/site1/ erreiche ich über die Domain http://www.example.com. Ich habe dazu folgende Datei angelegt:

/etc/apache2/sites-available/site1

Die Datei sieht so aus:

<VirtualHost *:80>

ServerAdmin webmaster@localhost
DocumentRoot /var/www/site1/

<Directory />
Options -All FollowSymLinks MultiViews
AllowOverride AuthConfig
</Directory>

<Directory /var/www/site1/>
Options -All FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
DirectoryIndex index.html index.htm index.php
ServerSignature On
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

<Directory "/usr/lib/cgi-bin">  
AllowOverride None
Order allow,deny
Allow from all
</Directory>
 
 Alias /doc/ "/usr/share/doc/"  

<Directory "/usr/share/doc/">  
Options -All FollowSymLinks MultiViews
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
 </Directory>

</VirtualHost>

Die Datei habe ich in /etc/apache2/sites-available/default mit "Include" eingebunden.

Und für jedes Verzeichnis das ich in site1/ habe muss ich in der httpd.conf einen Eintrag wie diesen erstellen:

httpd.conf

DirectoryIndex index.html index.htm index.php
Options -All FollowSymLinks MultiViews
ServerSignature off

<Directory /var/www/site1/>
  Options None
  AllowOverride All
</Directory>

<Directory /var/www/site1/test>
  Options None
  AllowOverride All
</Directory>

AccessFileName .htaccess
<Files ~ "^\.ht">  
Order allow,deny
</Files>

Soweit funktioniert das ganze ja! Etwas nervig ist natürlich das ich für jedes neue Verzeichnis (und somit für jede neue .htaccess) einen neuen Eintrag in der httpd.conf machen muss.

?Gibt es eine Möglichkeit um einmal anzugeben das eine .htaccess am Server erlaubt ist, und das dann für den gesamten Webserver genügt?

Ja das ganze funktioniert ja, aber jetzt möchte ich in /var/www/site2 auch eine .htaccess Datei aktivieren. Die .htaccess Datei habe ich copypasted von einer funktionierenden, an der darf es also nicht liegen.

Meine /etc/apache2/sites-available/site2 hat folgenden Inhalt:

<VirtualHost *:80>
   ServerName site2.example.com
   ServerAlias site2.example.com
   DocumentRoot /var/www/site2

<Directory />
   Options FollowSymLinks
   AllowOverride None
</Directory>

<Directory /var/www/blog>
   Options Indexes FollowSymLinks MultiViews
   AllowOverride None
   Order allow,deny
   allow from all

</Directory>

</VirtualHost>

Auch hier wurde wieder ein Eintrag in der httpd.conf gemacht:

<Directory /var/www/site2/test>
  Options None
  AllowOverride All
</Directory>

Der .htaccess habe ich chmod 644 gegeben.

Meine Fragen an der Stelle:

Warum funktioniert die .htaccess trotzdem noch nicht richtig?
Was ist der genaue Unterschied zwischen ../sites-available/default und httpd.conf, es gibt Einträge die in beiden Files ähnlich sind?

Ich hoffe ich konnte mein Problem genau genug schildern.

Liebe Grüße

Content-Key: 157059

Url: https://administrator.de/contentid/157059

Printed on: April 26, 2024 at 08:04 o'clock

Member: dog
dog Dec 15, 2010 at 19:47:20 (UTC)
Goto Top
Ich weigere mich ja mittlerweile Textblobs ohne Code-Formatierung anzugucken...

?Gibt es eine Möglichkeit um einmal anzugeben das eine .htaccess am Server erlaubt ist, und das dann für den gesamten Webserver genügt?

Konfiguration geschieht im aktuellen Kontext und Kontexte werden immer vererbt.