.htaccess Problem

TTlong

Angesehenes Mitglied
Hallo zusammen,

ich habe ein Problem und keinerlei Ahnung wie ich es beheben kann.

Ich habe eine Software (oxwall.org) installiert, möchte aber eine Landingpage vorher aufgerufen haben. Per DirectoryIndex sollte es doch eigentlich kein Problem sein, eigentlich.

Das ist die .htaccess

CODE
Options +FollowSymLinks
RewriteEngine On

DirectoryIndex join.html

AddEncoding gzip .gz
AddEncoding gzip .gzip
<FilesMatch "\.(js.gz|js.gzip)$">
ForceType text/javascript
</FilesMatch>
<FilesMatch "\.(css.gz|css.gzip)$">
ForceType text/css
</FilesMatch>

RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_URI} !/ow_updates/index\.php
RewriteCond %{REQUEST_URI} !/ow_updates/
RewriteCond %{REQUEST_URI} !/ow_cron/run\.php
RewriteCond %{REQUEST_URI} !/e500\.php
RewriteCond %{REQUEST_URI} !/join\.html
#RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.xml|\.feed|robots\.txt|\.raw|/[^.]*)$ [NC]
RewriteCond %{REQUEST_FILENAME} (/|\.php|\.html|\.htm|\.xml|\.feed|robots\.txt|\.raw|/[^.]*)$ [NC]
RewriteRule (.*) index.php




Von mir hinzugefügt wurden die Zeilen:

CODE DirectoryIndex join.html

und

CODE RewriteCond %{REQUEST_URI} !/join\.html


Der DirectoryIndex wird aber entweder ignoriert oder durch andere Regeln wieder außer Kraft gesetzt. Es wird beim Aufruf von Domain.com immer die index.php aufgerufen.


Weiss jemand einen Rat?


MfG TTlong
 
Try and Error

Ich würde mal die RewriteEngine ausstellen und schauen ob es dann funktioniert.

Falls ja, liegt der Fehler in den Rewrites und du bist schon mal einen Schritt weiter...
 
QUOTE (elmex @ Fr 29.05.2015, 13:15)Ich würde mal die RewriteEngine ausstellen und schauen ob es dann funktioniert.

Das verstehe ich nicht!??



CODE RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_URI} !/ow_updates/index\.php
RewriteCond %{REQUEST_URI} !/ow_updates/
RewriteCond %{REQUEST_URI} !/ow_cron/run\.php
RewriteCond %{REQUEST_URI} !/e500\.php
RewriteCond %{REQUEST_URI} !/join\.html
#RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.xml|\.feed|robots\.txt|\.raw|/[^.]*)$ [NC]
RewriteCond %{REQUEST_FILENAME} (/|\.php|\.html|\.htm|\.xml|\.feed|robots\.txt|\.raw|/[^.]*)$ [NC]
RewriteRule (.*) index.php


Ohne diesen Teil funktioniert der DirectoryIndex, es hat definitiv etwas mit den Rules darunter zu tun. Irgendetwas setzt den DirectoryIndex ausser Kraft. Ich verstehe die untere Rule so, dass alles was NICHT zb.


CODE RewriteCond %{REQUEST_URI} !/e500\.php


ist, auf die index.php geleitet wird. Lasse ich die gesamte htaccess so wie gepostet und rufe domain.com/join.html auf, wird diese auch korrekt angezeigt. Sie wird eben nur als DirectoryIndex ignoeriert wenn ich die gesamten Rules drinnen stehen hab.

Kurios ist auch, dass, wenn ich PHP von nginx verarbeiten lasse, also PHP-FPM zuschalte, funktionierts, nur Teile des Scripts dann nicht mehr. Nginx hat ebenfalls ein


CODE index join.html




MfG
 
Also die rules sind schuld.

Dann vermutlich der Teil hier:

CODE RewriteCond %{REQUEST_FILENAME} (/


DirectoryIndex sorgt dafür, dass der Aufruf vom Root-Pfad (/) intern diese join.html darstellt.
Die Regel biegt aber den Aufruf für diesen Pfad auf die index.php um. Die Prüfung !/join\.html davor kommt wegen dem DirectoryIndex nicht mehr zum tragen.

Was das alles jetzt mit nginx zu tun haben soll - ein Rätsel! nginx liest keine .htaccess und Rewrites haben da eine ganz andere Synthax....
 
Zurück
Oben