Apache: Index.html wird aus vorherigen Ordner aufgerufen

Deex

New Member
Hi, dies ist mein erster Beitrag hier. Ich bin auf euch gekommen da ich gesehen habe das sich einige doch hier mit der Thematik Webserver recht gut auskennen.
Ich habe mein Problem mittlerweile in zwei vorherigen Foren geschildert und bisher keine Lösung gefunden und auch leider keinen mit Lösungsansatz.

Zu der Vorgeschichte, ich betreibe 3 Urls die auf verschiedene sprachen umgeschrieben werden.

Der alte Server war ein Debian 6 server den ich jedoch nicht verwaltet habe, hier liefen alle Rewrites ohne Probleme.

Der zweite Server ist ein Debian Squeeze Server 6 mit aktuellstem Apache, hier habe ich von hand den Webspace in den Apache angelegt. Mod Rewrite funktionierte ohne Probleme.

Der Neuste Server ist wieder Debian 6 Squeeze mit aktuellstem Apache und als änderung verwaltet mit ISPConfig.

Das Kuriose ist jedoch das die Rewrite Regeln beim neustem Server nicht korrekt funktionieren.

Die Hirachie muss man sich so vorstellen.

www.meinesteite.de/us/com (Hier liegt die erste .htaccess)

Die schreibt Slugs um und Sprachen je nach Domäne. Diese Seite funktioniert wie üblich. Doch wenn ich auf eine Interne Entwicklerseite gehe

www.meineseite.de/internal/ (hier liegt die zweite .htacess
dann gibt er die meineseite.de/index.html aus anstatt meineseite.de/internal/index.php

Selbst wenn ich die Index.php als direkt link öffne stellt er zwar das gerüst der Seite da allerdings als wäre es im Stammordner aufgerufen worden (meineseite.de)

Ich hatte alle .htaccess schon deaktiviert und der Fehler bleibt genau so bestehen, jedoch nur wenn ich auf ISPConfig setze.

Hat jemand einen Rat?
 
Platzhalter für Konfigurationseinträge:

Apache
Direktiven
DocumentRoot /var/www/meineseite.com/web

ServerName meineseite.com
ServerAlias *.meineseite.com
ServerAlias *.meineseite.de meineseite.de
ServerAlias *.meineseite.us meineseite.us
ServerAlias munin.meineseite.com
ServerAdmin webmaster@meineseite.com

ErrorLog /var/log/ispconfig/httpd/meineseite.com/error.log

Alias /error/ "/var/www/meineseite.com/web/error/"
ErrorDocument 400 /error/400.html
ErrorDocument 401 /error/401.html
ErrorDocument 403 /error/403.html
ErrorDocument 404 /error/404.html
ErrorDocument 405 /error/405.html
ErrorDocument 500 /error/500.html
ErrorDocument 502 /error/502.html
ErrorDocument 503 /error/503.html

<IfModule mod_ssl.c>
</IfModule>

<Directory /var/www/meineseite.com/web>
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<Directory /var/www/clients/client1/web1/web>
AllowOverride All
Order allow,deny
Allow from all
</Directory>




# cgi enabled
<Directory /var/www/clients/client1/web1/cgi-bin>
Order allow,deny
Allow from all
</Directory>
ScriptAlias /cgi-bin/ /var/www/clients/client1/web1/cgi-bin/
AddHandler cgi-script .cgi
AddHandler cgi-script .pl
# suexec enabled
<IfModule mod_suexec.c>
SuexecUserGroup web1 client1
</IfModule>
# Clear PHP settings of this website
<FilesMatch "\.ph(p3?|tml)$">
SetHandler None
</FilesMatch>
# php as fast-cgi enabled
# For config options see: http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html
<IfModule mod_fcgid.c>
IdleTimeout 300
ProcessLifeTime 3600
# MaxProcessCount 1000
DefaultMinClassProcessCount 0
DefaultMaxClassProcessCount 100
IPCConnectTimeout 3
IPCCommTimeout 360
BusyTimeout 300
</IfModule>
<Directory /var/www/meineseite.com/web>
AddHandler fcgid-script .php .php3 .php4 .php5
FCGIWrapper /var/www/php-fcgi-scripts/web1/.php-fcgi-starter .php
Options +ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<Directory /var/www/clients/client1/web1/web>
AddHandler fcgid-script .php .php3 .php4 .php5
FCGIWrapper /var/www/php-fcgi-scripts/web1/.php-fcgi-starter .php
Options +ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>

RewriteEngine on
RewriteCond %{HTTP_HOST} ^munin\.meineseite\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/webdav/
RewriteCond %{REQUEST_URI} !^/monitoring/
RewriteRule ^/(.*)$ /monitoring/$1

# add support for apache mpm_itk
<IfModule mpm_itk_module>
AssignUserId web1 client1
</IfModule>

<IfModule mod_dav_fs.c>
# Do not execute PHP files in webdav directory
<Directory /var/www/clients/client1/web1/webdav>
<ifModule mod_security2.c>
SecRuleRemoveById 960015
SecRuleRemoveById 960032
</ifModule>
<FilesMatch "\.ph(p3?|tml)$">
SetHandler None
</FilesMatch>
</Directory>
DavLockDB /var/www/clients/client1/web1/tmp/DavLock
# DO NOT REMOVE THE COMMENTS!
# IF YOU REMOVE THEM, WEBDAV WILL NOT WORK ANYMORE!
# WEBDAV BEGIN
# WEBDAV END
</IfModule>
 

Attachments

  • 1.jpg
    1.jpg
    85.2 KB · Views: 263
Last edited by a moderator:
@Svenr,

dort hatte ich zuerst die Anfrage gestellt, leider ohne Lösung. Ich habe selbst zwischenzeitlich den Server komplett neu Aufgesetzt aber das Problem scheint in der Grundsätzlichen Konfiguration zu liegen.

Hallo bibabu,

.htaccess Nr1 meineseite.de

Code:
<IfModule mod_rewrite.c>


RewriteEngine on

RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]

##### DIRECT FILE ACCESS ###################################

RewriteCond $1 ^internal/
RewriteRule ^(.*)$ $1 [L]

RewriteRule ^zens7303bae6a973036b\.html$ /zens7303bae6a973036b.html [L]
RewriteRule ^robots\.txt$                  /robots.txt [L]
RewriteRule ^zenseAuth\.xml$            /zensAuth.xml [L]
RewriteRule ^zens_video\.js$          /zens_video.php [L]
RewriteRule ^zens_link\.js$         /zens_link.php [L]
RewriteRule ^zens\.js$                     /zensrate.php [L]
RewriteRule ^zens\.php$                  /zensimg.php [L]
RewriteRule ^zensformular\.php$         /zensformular.php [L]
RewriteRule ^zensrol\.php$                 /zens.php [L]
RewriteRule ^zens_new\.php$              /import/zens_new.php [L]





RewriteRule ^(.+\.css) /$1 [L]
RewriteRule ^(.+\.js)  /$1 [L]
RewriteRule ^(.+\.png) /$1 [L]
RewriteRule ^(.+\.jpg) /$1 [L]
RewriteRule ^(.+\.gif) /$1 [L]
RewriteRule ^(.+\.ico) /$1 [L]


# This redirects "slug" and "slug/" to "slug.html"
RewriteRule ^([0-9a-z\-]+)/?$ /$1.html [R=301,L]

# This redirects "slug/zens" and "slug/zens/" to "slug/zens.html"
RewriteRule ^([0-9a-z\-]+)/zens/?$ /$1/zens.html [R=301,L]

# This redirects "zens/zens-slug" and "zens/zens-slug/" to "zens/zens-slug.html"
RewriteRule ^zens/([0-9a-z\-]+)/?$ /zens/$1.html [R=301,L]

##### BASE www REWRITE #####################################

RewriteCond %{HTTP_HOST} ^meineseite.com
RewriteRule (.*) http://www.meineseite.com/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^meineseite.us
RewriteRule (.*) http://www.meineseite.us/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^meineseite.de
RewriteRule (.*) http://www.meineseite.de/$1 [R=301,L]

##### zens REWRITE ########################################

# %{QUERY_STRING} muss als erster Parameter kommen, damit loc, zens und query nicht überschrieben werden, falls diese vom User angegeben werden sollten...

RewriteCond %{HTTP_HOST} ^www\.meineseite\.com
RewriteRule ^([0-9a-z\-]+)/zens\.html$ /index.php?%{QUERY_STRING}&loc=en&zens=1&query=$1 [L]

RewriteCond %{HTTP_HOST} ^www\.meineseite\.com
RewriteRule ^zens/([0-9a-z\-]+).html$ /index.php?%{QUERY_STRING}&loc=en&zens=2&query=$1 [L]

RewriteCond %{HTTP_HOST} ^www\.meineseite\.de
RewriteRule ^([0-9a-z\-]+)/zens\.html$ /index.php?%{QUERY_STRING}&loc=de&zens=1&query=$1 [L]

RewriteCond %{HTTP_HOST} ^www\.meineseite\.de
RewriteRule ^zens/([0-9a-z\-]+).html$ /index.php?%{QUERY_STRING}&loc=de&zens=2&query=$1 [L]

RewriteCond %{HTTP_HOST} ^www\.meineseite\.us
RewriteRule ^([0-9a-z\-]+)/zens\.html$ /index.php?%{QUERY_STRING}&loc=en_US&zens=1&query=$1 [L]

RewriteCond %{HTTP_HOST} ^www\.meineseite\.us
RewriteRule ^zens/([0-9a-z\-]+).html$ /index.php?%{QUERY_STRING}&loc=en_US&zens=2&query=$1 [L]

##### index.php REWRITE ####################################

RewriteCond %{HTTP_HOST} ^www\.meineseite\.com
RewriteRule ^(.*) /index.php?loc=en&query=$1 [L]

RewriteCond %{HTTP_HOST} ^www\.meineseite\.us
RewriteRule ^(.*) /index.php?loc=en_US&query=$1 [L]

RewriteCond %{HTTP_HOST} ^www\.meineseite\.de
RewriteRule ^(.*) /index.php?loc=de&query=$1 [L]



</IfModule>


.htacess 2 (meineseite.de/internal/)

Code:
AuthUserFile /var/www/clients/client1/web1/web/internal/.htpasswd
AuthGroupFile /dev/null
AuthName "Test-Folder"
AuthType Basic
<Limit GET>
require valid-user
</Limit>

<IfModule mod_rewrite.c>

RewriteEngine on
RewriteCond $1 !^(index\.php|assets|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]

</IfModule>
 
Ich bin dem Problem und Lösung etwas näher gekommen.

Scheinbar ist PHP Fast CGI der auslöser dafür. Wenn ich PHP mod PHP aktiviere läuft alles normal doch bei Fast CGI tritt das oben genannte Problem auf.

Ich würde dennoch aus Performance gründen weiter auf Fast CGI setzen, wo kann dort so ein Problem denn auftauchen?
 
Füge bei der zweiten htaccess unter RewriteEngine mal ein "RewriteBase internal" ein.
ISPConfig kann seit dem letzten Update auch php-fpm. In meinen Augen der beste Weg PHP einzubinden.
 
Back
Top