http:// voranstellen

Sasser

Erfahrenes Mitglied
Hallo Leute!

Wenn man auf seinem Server nur www. eingibt sucht er ja ich selben Verzeichnis => Error 404.

Gibt es eine Möglichkeit sowas anzufangen und automatisch http://www. draus zu machen? Servereinstellung? PHP?

Danke euch! :)
 
Du kannst nicht mit PHP abfangen was in den Browser getippt wurde.
Du kannst aber in der Servereinstellung sagen wie der Server darauf reagieren soll.

Jedoch weiss ich nicht ob es deine Frage beantwortet.
Vielleicht stellst die Frage ein wenig wohlgeformter.
Hab Sie vielleicht falsch verstanden.

MFG Mikay
 
Wenn es ein Apache ist, so wird in der "/etc/apache2/apache2.conf" die entsprechende Fehlerbehandlung definiert.
 
Also es geht darum, dass ich ein Textfeld mit BB-Codes ausgestattet habe. Wenn nun aber jemand [IMG]www.seite.de[/IMG] eingibt, sucht er das auf meinem Server.

In diesem Beispiel soll nun http:// vorangestellt werden. Das ist der Code mit welchem ich die BB-Codes erkenne und ersetze:

PHP:
$info = preg_replace('/\[B\](.*?)\[\/B\]/', '<b>$1</b>', $info);
$info = preg_replace('/\[U\](.*?)\[\/U\]/', '<u>$1</u>', $info);
$info = preg_replace('/\[I\](.*?)\[\/I\]/', '<i>$1</i>', $info);
$info = preg_replace('/\[IMG\](.*?)\[\/IMG\]/', '<img src="$1""></img>', $info);
$info = preg_replace('/\[URL\](.*?)\[\/URL\]/', '<a href="$1" target="_blank>$1</a>', $info);
 
Ich hab keine Ahnung von PHP ^^ aber wollt dennoch mal reinschauen kannst du nicht vorher abfragen ob in der Variable $l ein http:// vorkommen wenn nicht stellst du grad ein http:// davor löst das dein Problem ?

Gibt doch bestimmt so eine Funktion wo dir sagen ob ein String vorhanden ist oder nicht
 
Gib doch einfach absolute URLs an.

Dass dein Browser auch Eingaben unvollständiger URLs versteht, ist nur Benutzungsfreundlichkeit seitens des Browsers. Dies gilt aber wie gesagt nur für direkte Adresseingaben des Benutzers.
 
Wenn ein Benutzer aber nun nur www. eingibt bekommt man das Problem.

Ich möchte es dem User aber erleichtern, indem ich das http:// voranstelle.

Gibt es da eine fertige Funktion, mit welcher man einen String nach www. durchsuchen kann und wenn davor kein http:// steht, dieses dann einfügt?
 
So wie ich das verstehe geht es ihm nicht um die eingabe in der Adresszeile des Browsers sondern um das angeben von Links in Textboxen.

z.B. in einem Gästebuch wo man seine Homepage eintragen kann. Wenn man da nur einen Link hinterlegt der http://www.test.de lautet dann wird bei einem späteren klick auf den Link http://www.meineseite.de/www.test.de aufgemacht und nicht http://www.test.de

Oder?
Das musst du nach der eingabe der Adresse prüfen und evt das http:// anhängen ;)

Eine SEHR einfach Funktion:
PHP:
<?php

function get_valid_link($link) {
	if (substr($link, 0, 7) == 'http://') {
		return $link;
	}
	else {
		return 'http://'.$link;
	}
}

$link = get_valid_link("www.test.de");
$link2 = get_valid_link("http://www.test.de");

echo $link;
echo '<br>';
echo $link2;

?>

Ausgabe:
Code:
http://www.test.de
http://www.test.de

lg
 
Zuletzt bearbeitet:
Super vielen Dank!

Ein Problem habe ich noch:

Wenn jemand ein Bild einfügt welches größer als 380 Pixel ist, verzieht es mir mein Design.

Jetzt habe ich die Größe auf 380 Pixel geändert, wenn nun jemand ein Bild mit 100 Pixeln hat passiert das gleiche...

Kann man das irgendwie testen wie groß und wenn zu groß auf 380 Pixel verkleinern?

PHP:
$info = preg_replace('/\[B\](.*?)\[\/B\]/', '<b>$1</b>', $info);
$info = preg_replace('/\[U\](.*?)\[\/U\]/', '<u>$1</u>', $info);
$info = preg_replace('/\[I\](.*?)\[\/I\]/', '<i>$1</i>', $info);
$info = preg_replace('/\[IMG\](.*?)\[\/IMG\]/', '<img src="$1" width="380">', $info);
$info = preg_replace('/\[URL\](.*?)\[\/URL\]/', '<a href="$1" target="_blank">$1</a>', $info);
 
Zurück