Hallo Jörg
<?php ##404.php ## ggf. includiert oder sonstige Quelle (DB, ini-File, csv,...) $v['foo']='/produkte/abverkauf/foo.html'; $v['bar']='/produkte/abverkauf/bar.html'; # angenommene URI (Test in Konsole) if ( empty($_SERVER['REQUEST_URI']) ) { ##Tests_ #$_SERVER['REQUEST_URI']='/shop/abteilung/Ödipus1000+.html'; $_SERVER['REQUEST_URI']='/shop/Geschenke/foo.html'; $_SERVER['SERVER_NAME']='konsole.com'; $_SERVER['HTTPS']='on'; $_SERVER['fake']='yes'; } $pattern = '/\/([^\/]*)\.html$/'; $dummy=preg_match ( $pattern , $_SERVER['REQUEST_URI'], $matches ); print_r($matches); if ($_SERVER['HTTPS'] && 'off' != $_SERVER['HTTPS']) { $proto='https://'; } else { $proto='http://'; } if ( ! empty($v[$matches[1]]) ) { if ( ! empty($_SERVER['fake']) ) { echo 'Location: ' . $proto . $_SERVER['SERVER_NAME'] . $v[$matches[1]] , "\n"; } else { header( 'Location: ' . $proto . $_SERVER['SERVER_NAME'] . $v[$matches[1]] ); } } else { if ( ! empty($_SERVER['fake']) ) { echo 'Location: ' . $proto . $_SERVER['SERVER_NAME'] . '/suche.php?q=' . urlencode($matches[1]), "\n"; } else { $_GET['q']=$matches[1]; header('HTTP/1.0 404 Not Found'); include_once( $_SERVER['DOCUMENT_ROOT'] . '/suche.php?' ); } }
Auch wenn ich ja nicht so viel davon verstehe. Dein Script sieht ja wesentlich aufwendiger aus als das vom Martin. Spricht denn etwas entscheidendes gegen die Lösung vom Martin?
Gruß Ingo