Hello,
ref: www.soulengineer.com
Habe für meine Site ein einfaches PHP Script installiert. Leider funktioniert es nicht..!!!? Habe das gleiche Script auf einen anderen Linux Server ausprobiert und siehe es funktioniert...keine Ahnung Warum?
Funktion:
das Script/Funktion (redirect.php) erkennt die Einstellugen des Browsers und leitet die URL zur entsprechenden Seite (Englisch oder Deutsch) um, damit findet eine automatische Sprachwahl statt.
Struktur :
Im Haupt-Index.html befindet sich ein kleines Script, welches das PHP Script aktiviert (redirect.php). Je nach erkannte Einstellung leitet das Script die URL entweder in die Directory /en/ wo die englische Version des index.html liegt, oder /de/ wo die deutsche Version liegt.
Haupt index.html und redirect.php sind in der gleichen Directory.
die entsprechende Sprach index.html sind in der /en/ bzw. /de/.
Problem
Keine Ahnung...!? Habe Alles schon probiert???
Hier noch der Code im Haupt 'index.html':
<?php
require_once 'redirect.php';
if (stristr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 'de')) {
redirect('/de/');
} else {
redirect('/en/');
}
?>
Hier noch der Code redirect.php:
<?php
function redirect($url)
{
global $HTTP_SERVER_VARS;
if (!preg_match('@^\w+://@', $url)) {
// HTTP/1.1 requires an absolute url
$new_url = ($HTTP_SERVER_VARS['HTTPS']=='on' ? 'https://' : 'http://').
$HTTP_SERVER_VARS['HTTP_HOST'];
if ($HTTP_SERVER_VARS['SERVER_PORT'] != ($HTTP_SERVER_VARS['HTTPS']=='on' ? 443 : 80)) {
$new_url .= ':'.$HTTP_SERVER_VARS['SERVER_PORT'];
}
if ($url{0} != '/') {
$dir = dirname($HTTP_SERVER_VARS['PHP_SELF']);
$new_url .= $dir;
if($dir != '/') $new_url .= '/';
}
$new_url .= $url;
$els = explode('/', $new_url);
$res = array();
foreach ($els as $el) {
if ($el == '.') continue;
if ($el == '..') { array_pop($res); continue; }
$res[] = $el;
}
$url = join('/', $res);
}
eregi('^HTTP/(.*)$', $HTTP_SERVER_VARS['SERVER_PROTOCOL'], $res);
$http_version = doubleval($res[1]);
if ($http_version >= 1.1)
header("HTTP/1.1 303 See Other");
header("Location: $url");
exit;
}
?>
Für Lösungsvorschläge bin ich sehr dankbar...ich bin am Ende...
Gruss
Marco
ref: www.soulengineer.com
Habe für meine Site ein einfaches PHP Script installiert. Leider funktioniert es nicht..!!!? Habe das gleiche Script auf einen anderen Linux Server ausprobiert und siehe es funktioniert...keine Ahnung Warum?
Funktion:
das Script/Funktion (redirect.php) erkennt die Einstellugen des Browsers und leitet die URL zur entsprechenden Seite (Englisch oder Deutsch) um, damit findet eine automatische Sprachwahl statt.
Struktur :
Im Haupt-Index.html befindet sich ein kleines Script, welches das PHP Script aktiviert (redirect.php). Je nach erkannte Einstellung leitet das Script die URL entweder in die Directory /en/ wo die englische Version des index.html liegt, oder /de/ wo die deutsche Version liegt.
Haupt index.html und redirect.php sind in der gleichen Directory.
die entsprechende Sprach index.html sind in der /en/ bzw. /de/.
Problem
Keine Ahnung...!? Habe Alles schon probiert???
Hier noch der Code im Haupt 'index.html':
<?php
require_once 'redirect.php';
if (stristr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 'de')) {
redirect('/de/');
} else {
redirect('/en/');
}
?>
Hier noch der Code redirect.php:
<?php
function redirect($url)
{
global $HTTP_SERVER_VARS;
if (!preg_match('@^\w+://@', $url)) {
// HTTP/1.1 requires an absolute url
$new_url = ($HTTP_SERVER_VARS['HTTPS']=='on' ? 'https://' : 'http://').
$HTTP_SERVER_VARS['HTTP_HOST'];
if ($HTTP_SERVER_VARS['SERVER_PORT'] != ($HTTP_SERVER_VARS['HTTPS']=='on' ? 443 : 80)) {
$new_url .= ':'.$HTTP_SERVER_VARS['SERVER_PORT'];
}
if ($url{0} != '/') {
$dir = dirname($HTTP_SERVER_VARS['PHP_SELF']);
$new_url .= $dir;
if($dir != '/') $new_url .= '/';
}
$new_url .= $url;
$els = explode('/', $new_url);
$res = array();
foreach ($els as $el) {
if ($el == '.') continue;
if ($el == '..') { array_pop($res); continue; }
$res[] = $el;
}
$url = join('/', $res);
}
eregi('^HTTP/(.*)$', $HTTP_SERVER_VARS['SERVER_PROTOCOL'], $res);
$http_version = doubleval($res[1]);
if ($http_version >= 1.1)
header("HTTP/1.1 303 See Other");
header("Location: $url");
exit;
}
?>
Für Lösungsvorschläge bin ich sehr dankbar...ich bin am Ende...
Gruss
Marco
Kommentar