Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Redirect Problem bei IIS 7.5 und PHP

Frage Entwicklung PHP

Mitglied: Airler

Airler (Level 1) - Jetzt verbinden

25.10.2013, aktualisiert 20:20 Uhr, 2082 Aufrufe, 1 Kommentar

Einen schönen guten Abend,

ich hoffe ihr könnt mir helfen, da ich zur Zeit mit dem Problem nicht mehr weiterkomme.

Es geht darum das ich einen IIS (war Anforderung) habe auf dem ich zusätzlich noch PHP installiert habe um eine PHP Anwendung zum laufen zu bringen.
Die PHP Anwendung arbeitet mit Weiterleitungen, zum Beispiel wenn man die Seite aufruft und noch nicht eingeloggt ist wird man zuerst auf die Login Seite weitergeleitet.
Dies klappt auf einem Apache Server auch ohne Probleme nur auf dem IIS macht das ganze zicken...

Und zwar ergibt sich das Phänomen, das man bei Aufruf der Seite dann wie folgt "weitergeleitet" wird:
Aufruf von http://sub.domain.de leitet auf http://sub.domain.de\/login.php weiter. (Ergebnis aus Firefox
Derselbe Aufruf im IE und einigen anderen Browsern ruft http://sub.domain.de//login.php hervor.

Die zweite Variante sorgt zwar schon dafür, das der Besucher auf der Webseite landet, aber schön ist sowas trotzdem nicht, viel mehr Kopfzerbrechen bereitet mir allerdings die erste Variante. Diese sorgt - wen wunderts - für einen Seitenladefehler...

Das Script, das für die Weiterleitung verantwortlich ist sieht wie folgt aus:
01.
<?php 
02.
	session_start(); 
03.
	 
04.
	$hostname = $_SERVER['HTTP_HOST']; 
05.
	$path = dirname($_SERVER['PHP_SELF']); 
06.
	$script = $_SERVER['PHP_SELF']; 
07.
	 
08.
	if (isset($https) && ($https == true)) { 
09.
		$protocol = 'https'; 
10.
	} else
11.
		$protocol = 'http'; 
12.
13.
	 
14.
	if (!isset($_SESSION["username"]) || !$_SESSION['username']) 
15.
16.
		header('Location: '.$protocol.'://'.$hostname.($path == '/' ? '' : $path).'/login.php'.($script == '/index.php' ? '' : '?ref='.$script)); 
17.
18.
?>
Eine kurze Erläuterung: ich hole mir zunächst das aufgerufene Script, den Pfad und den Hostnamen und leite den Besucher je nach Einstellung auf die http bzw. die https Seite weiter.

Im IIS habe ich "keine" weiteren Einstellungen bezüglich Rules, Redirects etc. gemacht, die mir das Verhalten evtl. erklären würden.

Hat einer von Euch vielleicht eine Idee woran das liegen könnte? Bzw. sogar eine Lösung?
Vielen Dank für Tipps im voraus!!!!

Schöne Grüße,
Torben

EDIT: IIS Version 7.5
Mitglied: Airler
26.10.2013 um 20:01 Uhr
Es ist zwar mehr ein Workaround aber mit der folgenden Änderung im Code funktioniert die Umleitung erfolgreich.
Dabei werden Doppelslash und Backslash-Slash Kombinationen durch einen einfachen Slash ersetzt:
01.
//... 
02.
        if (!isset($_SESSION["username"]) || !$_SESSION['username']) 
03.
04.
		$search_ary = array('\/', '//'); 
05.
		$url = $hostname.($path == '/' ? '' : $path).'/login.php'.($script == '/index.php' ? '' : '?ref='.$script); 
06.
		$url = str_replace($search_ary, '/', $url); 
07.
		header('Location: '.$protocol.'://'.$url); 
08.
	}
Schöne Grüße,
Torben
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
PHP
PHP PDO Problem (1)

Frage von Tiggr1994 zum Thema PHP ...

CMS
PHP - WordPress auf Apache schneller als auf IIS? (13)

Frage von Rene1976 zum Thema CMS ...

Rechtliche Fragen
gelöst Microsoftkonto wurde gehackt - Liegt das Problem direkt bei Microsoft? (6)

Frage von Stefan007 zum Thema Rechtliche Fragen ...

Webentwicklung
IIS 10 ASP Parserfehler auf Windows 10 (2)

Frage von Nexder zum Thema Webentwicklung ...

Heiß diskutierte Inhalte
Windows Installation
Eine etwas (wirklich) speziellere Frage: Windows 10-Installation über (11)

Frage von DerFurrer zum Thema Windows Installation ...

Linux
gelöst Boot failed: not a bootable disk (10)

Frage von Fleckmen zum Thema Linux ...

Windows Server
Probleme mit Client Software Zugriff auf Windows Server 2012 (8)

Frage von it-kolli zum Thema Windows Server ...

Multimedia & Zubehör
gelöst Iphone 6 prob (8)

Frage von jensgebken zum Thema Multimedia & Zubehör ...