Seite 1 von 1

domain.de/verzeichnis/datei.php -> domain.de

Verfasst: 23.11.2011, 17:16
von yaqwsx
Hi,

ich hoffe Ihr könnt helfen. Ich suche eine Möglichkeit, dass ich bei Eingabe der URL "domain.de" der Inhalt von "domain.de/verzeichnis/datei.php" angezeigt wird. Aber die angezeigte URL soll nur "domain.de/" sein. Und bei Eingabe von "domain.de/verzeichnis/datei.php" soll als URL auch nur "domain.de/" angezeigt werden. D.h. meine Startseite soll eine saubere und einzigartige URL haben.

Könnt Ihr hier mir helfen, ich kriege das nicht hin und probier schon echt lang.

Viele Grü0e und Danke.

Verfasst:
von

Verfasst: 23.11.2011, 18:59
von Melegrian
Bei einer Umschreibung für saubere URLs wird, zumindest bei dem was ich bisher so ausprobiert und gesehen habe, die Verzeichnisstruktur nicht verändert. Was Du Dir vorstellst ist hingegen nach meiner bescheidenen Meinung keine Umschreibung, sondern eine Weiterleitung, falls ein Ordner verschoben wurde. Aber ich kann mich ja auch irren, vielleicht gibt es da einige Möglichkeiten, die ich noch nicht kenne. Dennoch dürfte es das Einfachste sein, Du verlagerst den Inhalt des Ordners einfach eine Ebene höher und könntest dann mit einer Weiterleitung dafür sorgen, dass Zugriffe über ältere Links nicht ins Leere laufen.

Verfasst: 23.11.2011, 19:04
von tmyp
Das geht alles mit mod_rewrite. Was hast Du bisher und was funktioniert daran nicht?

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Verfasst: 23.11.2011, 19:55
von mano_negra
eine methode (gibt wahrscheinlich noch andere, richtigere?) die funktioniert:

lege domain.de/verzeichnis/datei.php als directory index fest. hier musst du aber auch die normale index angeben die in den anderen verzeichnissen verwendet werden. in diesem bsp index.php.

und die domain.de/verzeichnis/datei.php leitest du mit RewriteRule auf die domain.

Code: Alles auswählen

DirectoryIndex verzeichnis/datei.php index.php
RewriteEngine on
RewriteRule ^verzeichnis/datei.php$ http://www.domain.de/ [R=301]

Verfasst: 24.11.2011, 05:36
von Melegrian
Derartige Dinge teste ich meistens mit so einem kleinen Demoshop. Nun liegt der unter:

http:// localhost/demoshop/demo.php

Sollte für den Test aber unter erreichbar sein:

http:// localhost/demo.php

Mit DirectoryIndex demoshop/demo.php erreiche ich nur, dass die demoshop/demo.php stellvertretend für die eigentliche Index ausgegeben und geladen wird. Das angestrebte Ziel ist zwar mit einer Umschreibung lösbar:

Code: Alles auswählen

RewriteRule ^demo.php$ /demoshop/demo.php [L]
Diese Umschreibung hat aber den unerwünschten Begleiteffekt, dass relative Pfade zumindest teilweise zerreißen. Also zum Beispiel würde eine Pfadangabe wie grafiken/head.jpg bei den in den Dateien eingebundenen Grafiken nicht mehr reichen, da

http:// localhost/grafiken/head.jpg

halt nicht existiert. Eine Umleitung mit [R] für redirect am Ende der Zeile würde hingegen nichts bringen, da die ja zu etwas nicht existierenden weiterleitet und die Aufrufe ins Leere laufen:

Code: Alles auswählen

RewriteRule ^demoshop/demo.php$ /demo.php [R=301,L]
Irgend eine weitere Vereinfachung des Musters, wie zum Beispiel folgende, klappte bisher auch nicht:

Code: Alles auswählen

RewriteRule ^(.*).php$ /demoshop/$1.php [L]
Zumindest bei meinen Tests blieb bisher halt nur die erste Variante übrig, wobei aber alle relativen Pfade in den Dateien angepasst oder in absolute Pfade umgeändert oder alle einzeln umgeschrieben werden müssten, was ich jetzt nicht probiert habe, so dass man im Endergebnis schneller bei weg kommen würde, wenn man den ganzen Inhalt eines Verzeichnisses verschiebt und anschließend eine Weiterleitung schaltet. Vielleicht gibt es ja weitere Möglichkeiten und Lösungen, doch die kenne ich bisher leider nicht, habe aber noch einiges an Lernbedarf.

Verfasst: 24.11.2011, 07:58
von mano_negra
dein beispiel ist aber ein ganz anderes wie das vom threadersteller.
Mit DirectoryIndex demoshop/demo.php erreiche ich nur, dass die demoshop/demo.php stellvertretend für die eigentliche Index ausgegeben und geladen wird.
genau, du willst es aber unter demo.php ausgeben, auf der index ist was anderes - deswegen brauchst du das nicht.
yaqwsx will es aber unter domain.de/ haben.
Diese Umschreibung hat aber den unerwünschten Begleiteffekt, dass relative Pfade zumindest teilweise zerreißen.
dann gib halt absolute pfade an.

Verfasst: 24.11.2011, 09:20
von Melegrian
mano_negra hat geschrieben:dein beispiel ist aber ein ganz anderes wie das vom threadersteller.
Ja, hast Recht, da war ich wohl blind, so wäre das Beispiel richtig:

http:// localhost/demoshop/demo.php
http:// localhost/

Das funktioniert dann (ohne R):

Code: Alles auswählen

DirectoryIndex demoshop/demo.php
RewriteRule ^demo.php$ /demoshop/demo.php [L]
Beziehungsweise in seinem Beispiel sollte es dann so funktionieren :

Code: Alles auswählen

DirectoryIndex verzeichnis/datei.php
RewriteEngine on

RewriteRule ^datei.php$ /verzeichnis/datei.php [L]
Nur einige relative Pfade müssen angepasst werden, dass wird nicht ausbleiben.