Seite 1 von 1

URL-Manipulation verhindern

Verfasst: 25.07.2013, 23:51
von Michael1967
Hallo,

ich habe mal eine Frage.

Wie kann man eine URL-Manipulation verhindern.

Url wird umgeschrieben von .php nach .html

Jetzt kann ich ein ? ans Ende der Url anhängen .html? und die Seite wird ganz normal geladen. Wie kann ich das verhindern und umleiten? Also nur dann, wenn irgendwas ans Ende der URL angehangen wird.

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Re: URL-Manipulation verhindern

Verfasst: 26.07.2013, 06:10
von sam600
Michael1967 hat geschrieben:Wie kann ich das verhindern und umleiten?
mit den wenigen infos kann ich nur raten.

denke htaccess ist was fuer dich

Verfasst: 26.07.2013, 08:02
von Michael1967
Was für Infos brauchst du?

Verfasst: 26.07.2013, 08:12
von sam600
Michael1967 hat geschrieben:Was für Infos brauchst du?
auf welchen system laueft die seite?
welches cms?
usw.

aber zu 99% sollte htaccess die richtige loesung sein

Verfasst: 26.07.2013, 08:39
von Michael1967
Ich habe überall schon gesucht, aber wie man ein ? am Ende der Url wegbekommt, konnte ich nicht finden.

Das Script ist ein Eigenbau (-;

Andere Zeichen am Ende der URL funktionieren nicht, Error 404. Nur bei einem ?.

In der htaccess stehen die Url-Umschreibungen drin. Wie würdest du das machen?

Verfasst: 26.07.2013, 12:25
von Michael1967
Auch das funktioniert nicht. Habe ich da einen Denkfehler?

Code: Alles auswählen

$uri = $_SERVER['REQUEST_URI'];

if(strpos($uri,'.html?') === 0) {

header('HTTP/1.1 301 Moved Permanently');
header('Location: http://www....../');
exit;
}  

Verfasst: 26.07.2013, 12:44
von Sciencefreak
strpos arbeitet für ja/nein-Ergebnisse auch mit dem boolschen false und true

versuch mal if(strpos($uri,'.html?') === true)

Verfasst: 26.07.2013, 14:58
von Michael1967
Alles sehr eigenartig.

Es wird nun umgleitet auf ohne ? am Ende. Aber, wenn ich den Aufruf über die Webmastertools teste, erhalte ich ein 200 ok obwohl ich das ? dort (Aufruf wie Googlebot) mit eingegeben habe.

Genau das selbe auch mit Rex Swain's HTTP Viewer.

Hier im Forum wird das auch zugelassen - foren/viewforum/f-76.html?

Verfasst: 26.07.2013, 16:12
von Sciencefreak
Dann bleibt wohl nur die Möglichkeit, den (leeren) Query_String direkt umzuleiten. Das Fragezeichen ist ja das Einleitungszeichen dafür.

Du könntest theoretisch auch prüfen, ob das $_GET Array leer ist und dann entsprechend weiterleiten.

Verfasst: 26.07.2013, 18:17
von Michael1967
Du könntest theoretisch auch prüfen, ob das $_GET Array leer ist und dann entsprechend weiterleiten.
Und wie würde sowas aussehen. Bin da nicht so fit in den Sachen (-;

Verfasst: 26.07.2013, 18:38
von Sciencefreak
if(count($_GET)>=1) prüft, of mindestens ein Parameter im $_GET Array vorhanden ist
andersrum würde auch if(count($_GET)==0) gehen


if($_SERVER["QUERY_STRING"]==null) wäre eventuell auch einen Versuch wert (null ausschreiben, nicht 0)

Verfasst: 26.07.2013, 21:54
von bbnetch
[off topic]
warum null?
diese ganze programmiersprache ist auf englisch, warum schreibt man dann "null" und nicht "zero" wenn man keine zahl verwendet ?