Gentle_Giant


: 26.04.2008 : 24
|
| : 28.05.2008, 11:07 : RFC: PHP statt .htaccess (T-Online) |
|
|
Hi Forum,
wir hatten ja Anfang der Woche über den Umstand diskutiert, dass T-Online .htaccess ignoriert http://www.abakus-internet-marketing.de/foren/viewtopic/t-57076.html.
Ich habe jetzt folgende Lösung gebaut: dieser Code wird am Anfang jeder Seite per PHP-Include hereingeholt und übernimmt - zumindestens teilweise - die Aufgaben von .htaccess.
| Code: |
<?
$request_host = strtolower($_SERVER["HTTP_HOST"]);
$request_uri = strtolower($_SERVER["REQUEST_URI"]);
$something_changed = false;
// don't change host, when it is already the right one or when we're in test environment;
$new_host = $request_host;
if ( ! ( ($new_host == "mynotebook") || ($new_host == "localhost") || ($new_host == "www.mytestserver.de") || ($new_host == "www.der_richtige_server.de") ) ) {
$something_changed = true;
$new_host = "www.der_richtige_server.de";
}
$new_uri = $request_uri;
// strip trailing slashes
if ( (strpos($new_uri,".php") > 0) && ( substr ($new_uri,-1) == "/" ) ) {
$new_uri = substr($new_uri,0,-1);
$something_changed = true;
}
// ***SPECIAL*** convert underscores to hyphens
if (strpos($new_uri,"_") > 0) { // underscores vorhanden
$new_uri = str_replace("_","-",$new_uri);
$something_changed = true;
}
if ( $something_changed ) {
$new_request = "http://".$new_host.$new_uri;
header("Status: 301 Moved Permanently");
header("Location:$new_request");
exit;
}
?>
|
Any comments?
Bye for now
Gentle_Giant [still crazy after all these years ...]
Zuletzt bearbeitet von Gentle_Giant am 28.05.2008, 11:29, insgesamt einmal bearbeitet |
|
800XE


: 02.12.2004 : 5210 : XENEVU
|
| : 28.05.2008, 11:20 : Re: RFC: PHP statt .htaccess |
|
|
| Gentle_Giant hat Folgendes geschrieben: |
| Any comments? |
1. mach doch bitte bei "T-Online" ein (Hosting) dazu .... dachte erst es geht um Internetzugang ... aber das kann ja nicht sein ... 301 ist ja eine WebServergescgichte
2. so ungefähr mach ich das auch
die möglichen Regulären Ausdrücke für htaccess die sind mir zu kompliziert
deswegen fange ich alles mit einer simplen htaccess ab und haue es auf die index.php .... einzig und alleine diese Datei wird bei mir requestet ....
dann verschiedene include (je nach URL andere) und .....
www.cms800.de/Account/CMS800install.html
REQuest Modul
| Code: |
/***********************************************************************
* REQUEST analyse
* Sub
* Domain
* Folder
* File
**********************************************************************/
$REQUEST = strtolower($_SERVER['HTTP_HOST']);
$REQlast = -1;
$tok = strtok($REQUEST, ".");
while( $tok )
{
$REQlast++;
$REQlist[4] = $REQlist[3];
$REQlist[3] = $REQlist[2];
$REQlist[2] = $REQlist[1];
$REQlist[1] = $REQlist[0];
$REQlist[0] = $tok;
$tok = strtok( "." );
}
$REQUEST_SUB = $REQlist[2];
$REQUEST_HOST = $REQlist[1].'.'.$REQlist[0];
$REQUEST_SITE = $REQlist[2].' '.$REQlist[1].' '.$REQlist[0];
$REQUEST_DOMAIN = $REQlist[1];
$REQUEST_FOLDER = $GLOBALS['folder'];
$REQUEST_FILE = $GLOBALS['file'];
$REQUEST_FILEPATH = $_SERVER['REQUEST_URI'];
if ( ".html"==substr($_SERVER['REQUEST_URI'], -5) )
{
//echo("<br>$_SERVER[REQUEST_URI]");
$REQUEST_FILE =substr($_SERVER['REQUEST_URI'], 0, -5);
$pos =strrpos($REQUEST_FILE, "/");
$REQUEST_FOLDER=substr($REQUEST_FILE, 0,$pos);
$REQUEST_FILE =substr($REQUEST_FILE, 1+$pos);
//echo("<br>#$REQUEST_FOLDER#$REQUEST_FILE#");
}
else
|
aber nur ... /Affilitiv/ ... innovativ |
|