• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Domain umschreiben

No3x

Mitglied
Hallo, ich entwickel gerade eine neue Version einer Website lokal. Ich bin jedoch darauf angewiesen, dass die Pfade wie später auf der Live-Umgebung sind.
D.h. in meiner lokalen Umgebung: site.domain.de und online ist es auch site.domain.de.
Nun hätte ich gern in meiner lokalen Umgebung, dass alle Aufrufe von site.domain.de?idbla=1 auf localhost?idbla=1 umgeleitet werden. Ist so etwas über htaccess möglich?
 
Werbung:
Werbung:
Die Herangehensweise ist verkehrt herum. Anstatt die Requests umzuleiten solltest du in deinem System eher irgendwo eine Variable einsetzen, die als Präfix vor alle deine URIs gesetzt wird.
 
Du meinst programmiertechnisch? Konkret setze ich wordpress ein. Leider speichert ein plugin zu jedem post in den metadaten einen link. Ich konnte es bisher nur so machen, dass ich Replaces in der Datenbank gemacht habe, wenn ich die Änderungen am live System deployt habe. So ein switch der urls ist nicht einfach möglich. Auch andere plugins machen das so. Oder selbst, wenn man ein Bild einfügt wird dies statisch gespeichert.
So hätte ich das ja am liebsten auch gemacht.
 
Du könntest auf deinem lokalen System die hosts-Datei bearbeiten, so dass deine Domains beim Aufruf auf dein lokales System zeigen - nicht auf das öffentliche System. Dann erst könntest du auch die lokale Installation mit exakt den selben Domains aufrufen wie das öffentliche System. An Wordpress selbst müsstest Du dafür nichts ändern, auch nicht an der htaccess-Datei.
 
Werbung:
Ist denn unter site.domain.de in deinem lokalen Testnetzwerk ein Rechner erreichbar? Wenn nicht, kannst du die Umleitung nur durch den betreffenden Netzwerkrouter veranlassen.

Für cleverer halte ich es aber, sich das WP-Plugin etwas anzusehen und abzuändern. Es dürfte eigentlich nicht der Act sein dafür zu sorgen, dass die URLs in der DB ohne Domain gespeichert werden und beim Auslesen aus der DB einfach das Domain-Präfix aus der WP-Konfig vorangesetzt wird.
 
Das hatte ich probiert. Jedoch kann man so scheinbar nur domain->ip mapping machen. Site.domain.de localhost war nicht erfolgreich. Ich hatte allerdings kein reboot gemacht. Teste ich später nochmal nach einem reboot.
 
Nach einem Reboot ist die hosts-Bearbeitung evtl. wieder weg. Du musst nur den Eintrag in der hosts-Datei machen und sicherstellen, dass dein lokaler Apache die Domain kennt und dem vhost zuweist. Das kannst Du im Apache konfigurieren und dann den Apache neustarten (nicht den ganzen Rechner).
 
Werbung:
Ist denn unter site.domain.de in deinem lokalen Testnetzwerk ein Rechner erreichbar? Wenn nicht, kannst du die Umleitung nur durch den betreffenden Netzwerkrouter veranlassen.

Für cleverer halte ich es aber, sich das WP-Plugin etwas anzusehen und abzuändern. Es dürfte eigentlich nicht der Act sein dafür zu sorgen, dass die URLs in der DB ohne Domain gespeichert werden und beim Auslesen aus der DB einfach das Domain-Präfix aus der WP-Konfig vorangesetzt wird.


Leider speichert WP selbst auch absolute Pfade. Wie bei dem Beispiel mit dem Bild in einem Post. Es gibt dort keinen Mechanismus der nach der aktuellen domain sucht und diese durch einen Platzhalter ersetzt. (Soweit ich weiß)

Nach einem Reboot ist die hosts-Bearbeitung evtl. wieder weg. Du musst nur den Eintrag in der hosts-Datei machen und sicherstellen, dass dein lokaler Apache die Domain kennt und dem vhost zuweist. Das kannst Du im Apache konfigurieren und dann den Apache neustarten (nicht den ganzen Rechner).

Wie weise ich dem vhost die domain zu? Kannst du mir ein paar Stichworte nennen wie das bei apache genannt wird? Ist das die ServerAlias-Direktive?
 
Leider funktioniert das nicht. Es verändert 0 am Verhalten. Hier ist meine Vhost:
Code:
<VirtualHost *>
        ServerName site.domain.de        
        ServerAdmin [EMAIL="[email protected]"][email protected][/EMAIL]
    ServerAlias site.domain.de
        DocumentRoot /var/www/wp/
        <Directory /var/www/wp/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
        ErrorLog /var/log/apache2/error.log
        LogLevel warn
        CustomLog /var/log/apache2/access.log combined
        ServerSignature On
</VirtualHost>

site.domain.de existiert wirklich und ist mit einem Verzeichnisschutz versehen der ein Login anfordert. Ich erhalte momentan für jede Ressource, die vom lokalen System angefordert wird ein Loginfenster. Also hat das umbiegen nicht funktioniert.
Ich habe
Code:
site.domain.de localhost
in die hosts eingetragen und dann den Apache mit oben stehender Config neu gestartet.
 
Werbung:
Du müsstest in der hosts-Datei die IP verwenden. Also bei lokalem Aufruf:

Code:
127.0.0.1 site.domain.de
 
Das funktioniert leider auch nicht.
Beim restart bekomme ich seit Anfang an auch:
Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

Falls das was ausamcht.
 
Werbung:
Ah cool. Er scheint jetzt schon mal die Anfragen an meinen lokalen Server zu stellen. Jedoch befinden sich WP in dem Unterordner www/wp/. site.domain.de wird ja nun vom lokalen Webserver entgegengenommen. Jedoch fehlt mir jetzt die Umleitung nach wp/ noch.
Ich dachte an so etwas:
Code:
<VirtualHost *>
        ServerName site.domain.de        
        ServerAdmin [email protected]
    ServerAlias site.domain.de

RewriteEngine On
RewriteCond %{HTTP_HOST}  ^site\.domain\.de$ [NC]
RewriteCond %{REQUEST_URI} !^/wp/.*$
RewriteRule ^(.*)$  /wp/$1

        DocumentRoot /var/www/wp/
        <Directory /var/www/wp/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
        ErrorLog /var/log/apache2/error.log
        LogLevel warn
        CustomLog /var/log/apache2/access.log combined
        ServerSignature On
</VirtualHost>

Oder muss ich localhost abfangen? Weiß nicht genau was ich da tue. :roll:
 
Zuletzt bearbeitet:
Es würde auch reichen, wenn Du den DocumentRoot auf das richtige Verzeichnis änderst, was er eigentlich schon ist wenn ich mir das anschaue.
 
Werbung:
Wenn Wordpress in /var/www/wp/ liegt muss doch folgendes reichen:

Code:
<VirtualHost *>
        ServerName site.domain.de        
        ServerAdmin [email protected]
    ServerAlias site.domain.de
        DocumentRoot /var/www/wp/
        <Directory /var/www/wp/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
        ErrorLog /var/log/apache2/error.log
        LogLevel warn
        CustomLog /var/log/apache2/access.log combined
        ServerSignature On
</VirtualHost>

? Wenn nicht, dann stimmt entweder der Pfad nicht oder Wordpress erwartet in
Code:
http://site.domain.de/wp/
aufgerufen zu werden.
 
Wenn Wordpress in /var/www/wp/ liegt muss doch folgendes reichen:

Code:
<VirtualHost *>
        ServerName site.domain.de        
        ServerAdmin [email protected]
    ServerAlias site.domain.de
        DocumentRoot /var/www/wp/
        <Directory /var/www/wp/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
        ErrorLog /var/log/apache2/error.log
        LogLevel warn
        CustomLog /var/log/apache2/access.log combined
        ServerSignature On
</VirtualHost>
Damit funktioniert es leider nicht.
? Wenn nicht, dann stimmt entweder der Pfad nicht oder Wordpress erwartet in
Code:
http://site.domain.de/wp/
aufgerufen zu werden.
mit site.domain.de lande ich nur im root, in dem noch das tolle index.html liegt:
Code:
[B]It works![/B]
 This is the default web page for this server.
 The web server software is running but no content has been added, yet.
mit site.domain.de/wp sehe ich dann imerhin schonmal den blog, aber alle Ressourcen, die extra geladen werden werden nicht angezeigt, da sie die Anfragen an z.B. site.domain.de/wp-content/theme... richten. Jedoch müssen diese ja noch in den Unterordner wp/ geleitet werden.
Im Errorlog sieht das dann so aus:
Code:
[Tue Aug 20 17:10:03 2013] [error] [client 127.0.0.1] File does not exist: /var/www/wp-content, referer: http://site.domain.de/wp/


Der Pfad ist korrekt aber wenn ich den pfad für wordpress nun ändere hab ich ja wieder 2 verschiedene Adressen. Und das wollte ich ja umgehen.
 
Zuletzt bearbeitet:
Zurück
Oben