Zur Navigation

Standartverzeichnis in Unterordner verlegen

1 Tom12

Hallo,

Ich habe mit diesem .htaccess Script es geschafft, das Hauptverzeichnis, in den Ordner "indexo" zu verlegen. Das problem daran ist nur, dass wenn ich eine andere Datei außer index.php in diesem Verzeichnis aufrufen möchte es natürlich nicht geht.
also z.b. example.com/ Verweist auf die Datei /indexo/index.php
aber z.B. example.com/test.php Verweist nicht auf die Datei /indexo/test.php sondern die Datei /test.php
Außerdem klappt das ganze nur auf der Seite example.com und nicht auf jeder X-beliebigen Seite (dann müsste man das Script immer wieder anpassen)


RewriteEngine on

RewriteCond %{HTTP_HOST} ^(www.)?example.com$

RewriteCond %{REQUEST_URI} !^/indexo/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ /indexo/$1

RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ indexo/index.php [L]

MfG
Tom

29.03.2018 11:36

2 Jörg

also z.b. example.com/ Verweist auf die Datei /indexo/index.php
aber z.B. example.com/test.php Verweist nicht auf die Datei /indexo/test.php sondern die Datei /test.php

... und die Datei /test.php ist existent?

Diese Bedingung besagt ja, dass nur umgeleitet wird, wenn die Datei nicht existiert:

RewriteCond %{REQUEST_FILENAME} !-f

... was eigentlich eine sinnvolle Einschränkung ist, da man ja Pfade wie z.B. /robots.txt, /favicon.ico, /images/logo.png, /css/style.css etc. nicht umleiten möchte

Außerdem klappt das ganze nur auf der Seite example.com und nicht auf jeder X-beliebigen Seite

Ja, was an dieser Bedingung liegt:

RewriteCond %{HTTP_HOST} ^(www.)?example.com$

(dann müsste man das Script immer wieder anpassen)

Es sei denn, du kannst die Bedingung einfach weglassen, wenn nur das Wurzelverzeichnis von example.com innerhalb dieses Verzeichnisses liegt

29.03.2018 16:13 | geändert: 29.03.2018 16:14

1 Forenmitglied fand diesen Beitrag gut

3 Tom12

... und die Datei /test.php ist existent?
Nein die existiert nicht

Ich glaube ich hab es geschafft.
Ist das so richtig oder kann man da noch etwas verbessern?


RewriteEngine on
	RewriteCond %{REQUEST_URI} !^/indexo/
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteRule ^(.*)$ /indexo/$1
	RewriteRule ^(/)?$ indexo/index.php [L]

29.03.2018 21:22

4 Jörg

Wenn ich es richtig sehe, hast du nur die Bedingungen bez. HTTP_HOST entfernt? eigentlich sollte das keinen Einfluss darauf haben, ob bzw. wohin /test.php rewritet wird. Aber wenn es jetzt funktioniert, ist ja gut :)

29.03.2018 23:16

1 Forenmitglied fand diesen Beitrag gut

Beitrag schreiben (als Gast)





[BBCode-Hilfe]