Plesk Vhost.conf - Documentroot ändern - Aufgerufene URL dennoch anzeigen

Kiyara

New Member
Hallo,

ich bräuchte mal eben eine kurze Hilfestellung.
Es geht um die vhost.conf.

Ich bereibe ein CMS-System, welches 2 Webseiten hostet, bzw derzeit erst 2 Verzeichnisse inne hat, welche ich auf 2 Webseiten verteilen möchte.
Bsp.: Einmal das Verzeichnis abc.de und einmal die abc.de/xyz

Das Verzeichnis xyz soll nun auf xyz.de verweisen. Das klappt auch schon, nur wird eine Art Weiterleitung kreiiert, d.h beim Aufruf von xyz.de wird die URL in abc.de/xyz geändert.

Gibt es eine Möglichkeit, den Webseitennamen auf xyz.de zu belassen ohne die URL in abc.de/xyz zu ändern?

Vielen Dank und viele Grüße
 
Danke Huschi. Kannst du mir sagen wie ich das genau anstelle?

Mit diesem Code bekomme ich einen Fehler 500:

RewriteEngine On
Options +SymLinksIfOwnerMatch
RewriteCond %{HTTP_HOST} !^/pfad/zur/zieldomain/httpdocs
RewriteRule ^(.*)$ http://www.zieldomain.de/$1 [R=301,L]
 
Warum ein 500er kommt steht immer im error_log.
Um Dir die Regeln vorzulegen musst Du nochmal genauer beschreiben was Du willst.
Wenn ich es richtig verstehe, möchtes Du jeden Aufruf von abc.de/xyz einmalig weiterleiten auf xyz.de. Und auf dieser zweiten Domain soll der Surfer dann auch bleiben.
Und für die Domain xyz.de hast Du auch ein eigenes Web angelegt.

huschi.
 
Ok, nochmal:

verzeichnis abc.de/xyz soll immer auf xyz.de verweisen, so dass es aussieht als bewege man sich immer noch auf xyz.de obwohl man auf abc.de/xyz ist.

beide webseiten haben je ein eigenes web.


die vhost.conf für für die domain xyz.de sieht wie folgt aus:

Code:
DocumentRoot /pfad/zu/abc/httpdocs
ServerName xyz.de
ServerAlias xyz [url]www.xyz.de[/url]
UseCanonicalName On
Options +FollowSymLinks

<Directory /pfad/zu/xyz/httpdocs>
<IfModule sapi_apache2.c>
php_admin_flag engine on
php_admin_flag safe_mode off
php_admin_value open_basedir "none"
</IfModule>
<IfModule mod_php5.c>
php_admin_flag engine on
php_admin_flag safe_mode off
php_admin_value open_basedir "none"
</IfModule>
</Directory>
Wie setze ich hier nun den richtigen Rewrite? So dass abc.de auf xyz.de umleitet? das verzeichnis vom documentroot scheint schon richtig eingestellt zu sein.

Muss ich auf der abc.de vhost.conf auch noch etwas eintragen?

Vielen Dank und liebe Grüße
 
Last edited by a moderator:
Entweder wir reden an einander vorbei oder Du brauchst lediglich den DocumentRoot korrekt setzten:
Code:
DocumentRoot /pfad/zu/abc/httpdocs/xyz/
Natürlich solltest Du auch die Directory-Anweisungen auf diesen Pfad legen.

huschi.
 
Wir reden aneinander vorbei :)

abc nutzt:
/var/www/vhosts/abc.de/httpdocs
xyz.de nutzt
/var/www/vhosts/xyz.de/httpdocs

Das Cms ist so aufgebaut, dass es autom erkennt woher der Besucher kommt und wird, wenn er von xyz kommt, auf abc.de/xyz umgeleitet. Wenn der Besucher von abc.de kommt, bleibt der Besucher in diesem Verzeichnis (da andere Webseite). Den Ordner /xyz/ gibt es an sich gar nicht.

Hoffe du kannst damit etwas mehr anfangen.

Grüße

Edit:
Auch wenn die CMS Weiterleitung nicht funktionieren sollte, müsste xyz.de doch trotzdem auf abc.de/xyz/ umgeleitet werden, oder?
Bei derzeitiger Einstellung (wie oben genannt) bekomme ich nämlich nur ein "You don't have permission to access / on this server."
 
Last edited by a moderator:

die vhost.conf für für die domain xyz.de sieht wie folgt aus:

Code:
DocumentRoot /pfad/zu/abc/httpdocs
ServerName xyz.de
ServerAlias xyz [url]www.xyz.de[/url]
UseCanonicalName On
Options +FollowSymLinks

<Directory /pfad/zu/xyz/httpdocs>
<IfModule sapi_apache2.c>
php_admin_flag engine on
php_admin_flag safe_mode off
php_admin_value open_basedir "none"
</IfModule>
<IfModule mod_php5.c>
php_admin_flag engine on
php_admin_flag safe_mode off
php_admin_value open_basedir "none"
</IfModule>
</Directory>

Bei diesen Einstellungen sollte man unter der Domain xyz.de den gleichen Inhalt angezeigt bekommen wie unter der Domain abc.de.
Wenn dein CMS unter /pfad/zu/abc/httpdocs dann auf abc.de/xyz weiterleitet, steht das natürlich auch so im Browser. Wenn xyz.de aber eh auf das gleiche DocumentRoot wie abc.de leitet, dann sollte dein CMS einfach auf xyz.de/xyz weiterleiten, oder du setzt DocumentRoot für xyz.de gleich auf /pfad/zu/abc/httpdocs/xyz
 
Ich bin derjenige der das besagte CMS entwickelt hat und möchte nochmal unser eigentliches Ziel verdeutlichen:


Die Domain abc.de hat den DocumentRoot:
/pfad/zu/abc/httpdocs

Die Domain xyz.de hat den DocumentRoot:
/pfad/zu/xyz/httpdocs


Alles was für das CMS notwendig ist, ist dass beide Domains das selbe DocumentRoot haben, also:

Die Domain abc.de hat den DocumentRoot:
/pfad/zu/abc/httpdocs

Die Domain xyz.de hat den DocumentRoot:
/pfad/zu/abc/httpdocs


Mehr ist garnicht notwendig. Das CMS weiß dann über die Domain, über die es aufgerufen wird, welche Inhalte es anzuzeigen hat. Dazu müssen nur beide Domains das selbe DocumentRoot nutzen (da hier das CMS installiert ist) und die URL selbst sollte dann natürlich bestehen bleiben.

xyz.de sollte im Browser nicht abc.de öffnen, sondern auf xyz.de bleiben.
 
Last edited by a moderator:
Ich vermute mal der Fehler liegt hier in deinem CMS.
Es erkennt zwar die xyz.de Domain, nutzt dann aber die abc.de Domain zum anzeigen des Inhalts.
 
Ich würde die zweite Domain als Domainalias hinterlegen, damit es den gleichen DocumentRoot hat und den Code im CMS etwas anpassen:
PHP:
$urls = array("xyz.de" => "http://xyz.de/xyz/index.php",
			  "www.xyz.de" => "http://xyz.de/xyz/index.php");

foreach ($urls as $domain => $url) {
  if (strpos($_SERVER["HTTP_HOST"], $domain) !== false) {
    header("Location: $url");
    break;
  }
}
Somit würde beim aufruf der abc.de/index.php der Inhalt der Domain abc.de geladen werden, beim Aufruf der gleichen Datei über die andere Domain würde auf das Unterverzeichnis xyz umgelenkt werden.
 
Back
Top