ursus contionabundo: htaccess mod_rewrite - Host umschreiben, wenn localhost

Beitrag lesen

Kann jemand helfen?

Nicht wirklich. Es macht keinen Sinn, erst das Zündkabel abzuziehen um es dann bei jeder (Zweitakter) oder jeden zweiten Umdrehung (Viertakter) an die Kerze zu halten, damit der Motor läuft. Ebenso erscheint es nicht sinnvoll, hierfür eine Mechanik zu bauen.

Wenn der Host = localhost ist, wird jede URL mit dem Host www.example.com in localhost... umgeschrieben.

Du willst die URL in Links, src-Angaben für Stylesheets, Skripte, Grafiken umbauen. Das ist, naja, Unsinn. Wenn Du das gegen jeden guten Rat willst, dann benutze etwas wie PHP für solchen Murks:

<?php
if ( isset ( $_SERVER['HTTPS'] ) && 'on' = $_SERVER['HTTPS'] ) {
    $protocol = 'https';
} else {
    $protocol = 'http';
}
if ( isset ( $_SERVER['HTTP_HOST'] ) ) {
    $ProtocolAndHost = $protocol . '://' . $_SERVER['HTTP_HOST'];
} else {
    $ProtocolAndHost = "[LOKALER ABRUF]"; 
}
?>
<html>
<head>
     <base href="<?=$ProtocolAndHost; ?>/de/">
     <base target="_top">
     <link rel="stylesheet" href="<?=$ProtocolAndHost; ?>/skins/foo/style.css">
</head>


<a href="foo/bar.php">Foo-Bar!</a>
<img src="<?=$ProtocolAndHost; ?>/img/foo.img">

Das Ergebnis könnte wie folgt aussehen:

<html>
<head>
     <base href="http://localhost/de/">
     <base target="_top">
     <link rel="stylesheet" href="http://localhost/skins/foo/style.css">
</head>


<a href="foo/bar.php">Foo-Bar!</a>
<img src="http://localhost/img/foo.img">

oder, auf einem Server der sich selbst als "www.example.org" kennt und https unterstützt und via https abgefragt wird:

<html>
<head>
     <base href="https://www.example.org/de/">
     <base target="_top">
     <link rel="stylesheet" href="https://www.example.org/skins/foo/style.css">
</head>


<a href="foo/bar.php">Foo-Bar!</a>
<img src="https://www.example.org/img/foo.img">

Bitte akzeptiere, dass ich mir für etwas, was ich für "Murks" halte nicht auch noch viel Mühe gebe.

Du brauchst (jeweils) einen Host, der PHP kann und müsstest die Dateien von *.html in *.php umbenennen. (Letzteres kann man auch anders machen, aber dann wird es noch mehr Murks!)

B.T.W. Wozu brauchst Du <base target="_top">? verwendest Du Frames? Das ist "sowas von 1999"