Jump to content
powie.de Tech Forum
Sign in to follow this  
dens

HTML Conditionals?

Recommended Posts

Ich habe folgendes vor:

Wenn ein Benutzer die Startseite(index.html) aufruft,soll überprüft werden,ob er den Internet Explorer benutzt oder nicht.

Wenn er Firefox,Opera oder einen anderen Browser benutzt,soll ganz normal die index.html angezeigt werden.

Wenn er den Internet Explorer benutzt,soll hingegen die index.htm angezeigt werden(da die index.htm extra für den IE optimiert wurde).

Es gibt bereits eine HTML Conditional,mit der man wenn der Benutzer z.B:den IE nutzt,einen anderen Stylesheet verwenden kann als wenn er einen anderen Browser verwendet:




Kann man das für meinen Fall umfunktionieren?

Bei type= müsste glaube ich "text/html" hin und bei href="index.htm",was muss man aber bei link rel= eingeben?

Oder funktioniert diese Methode nicht?

Ich bedanke mich schonmal für Eure Hilfe;-)

Share this post


Link to post
Share on other sites

Ich wollte erstmal schauen,ob das mit HTML überhaupt möglich ist.(da es ja wie oben bereits beschrieben schon eine Conditional mit HTML gibt)

Wenn das nicht mit HTML geht,wäre PHP wohl die beste Möglichkeit,die man dann wählen sollte.

Hast Du einen Lösungsansatz,wie man das Problem mit PHP lösen könnte?

Share this post


Link to post
Share on other sites
Guest
Oder funktioniert diese Methode nicht?

Du könntest eine Meta-Weiterleitung definieren. Dies ist aber aus diversen Gründen böse.


Bemühe lieber - auch wenn es aus anderen diversen Gründen nicht vollständig funktionieren kann - die Skriptsprache deiner Wahl. Sollte dein Webserver eine eigene Erkennung vermögen, löst Du es vorzugsweise über diesen und sparst dir die teure Involvierung einer Skriptsprache. Da die Chance, dass Du einen Apache verwendest, relativ hoch ist, solltest Du dir mal die mod_rewrite anschauen.

Share this post


Link to post
Share on other sites

Eine Meta-Weiterleitung würde ich wenn es geht am liebsten vermeiden,da das nur Probleme verursacht,z.B:wenn ein Besucher auf den "Zurück" Button in seinem Browser klickt und dann immer auf der aktuellen Seite hängenbleibt und nicht mehr zurück kann.

Es daher mit mod_rewrite zu lösen,ist sicher die beste Idee.

Könnte das so in der Art funktionieren?


RewriteEngine on

RewriteCond %{HTTP_USER_AGENT} "^Mozilla\/4.0 \ (compatible; MSIE"

RewriteRule ^/index.html$ /index.htm [L]


 

Share this post


Link to post
Share on other sites
Guest

Ich habe das jetzt hier nicht getestet, aber das Prinzip ist richtig. Du solltest vielleicht neben dem L-Flag noch den R=301-Flag verwenden. Schließlich willst Du ja IEs immer weiterleiten.

Share this post


Link to post
Share on other sites

Ich habe es jetzt mal auch mit dem R=301-Flag probiert,allerdings erhalte ich dann eine Fehlermeldung vom Server beim Aufrufen der Seite.

Außerdem habe ich ein weiteres Problem festgestellt.

Wenn man jetzt z.B: www.domain.de/ aufruft mit dem IE wird nicht auf index.htm weitergeleitet,sondern es wird die index.html angezeigt,somit passt das Layout der Seite natürlich nicht.

Wenn man jetzt aber www.domain.de/index.html aufruft wird hingegen wie vorhergesehen die index.htm angezeigt.

Was könnte der Grund sein,dass es bei der Eingabe von www.domain.de/ nicht klappt?

Wie könnte man den RewriteRule ändern,sodass er auch zu index.htm weiterleitet,wenn man www.domain.de/ eingibt ?

Share this post


Link to post
Share on other sites

.html ist möglicherweise in der Priorität der index Seiten vor .htm


Ist Konfigurationssache des Server. Weiß leider nicht, ob sich das auch in einer .htaccess beeinflussen lässt.


Außerdem ist optimieren für $browser doch immer böse... Hast du sowas spezielles drin das das sein muss?

Ansonsten an Standards halten, das ist auf Dauer das beste. Sorry, das musste ich jetzt einfach schreiben.

Share this post


Link to post
Share on other sites

Die ursprüngliche Version der Webseite funktionierte ohne Probleme mit Mozilla Firefox und Opera.

Beim Internet Explorer bestand hingegen das Problem,dass aus welchen Gründen auch immer die rechte Navigationleiste nach unten verschoben wurde.

Über die rechte Navigationsleiste sind die wichtigsten Funktionen der Webseite erreichbar,daher muss sie beim Aufruf der Startseite auch sichtbar sein.(beim Internet Explorer musste man bis ans Seitenende runterscrollen bis sie sichtbar war)

Es reichte leider nicht aus,nur einen extra Stylesheet für den Internet Explorer anzulegen,ich musste auch Veränderungen am Quellcode vornehmen,damit die rechte Navigationsleiste auch an der richtigen Stelle angezeigt wird.

Die für den Internet Explorer optimierten Dateien haben die Dateiendung .htm.

Die Dateien,die für Firefox,Opera und alle andere Browser verwendet werden haben die Dateiendung .html.

Es stört mich auch etwas,dass ich soviel verändern musste,damit es im IE richtig angezeigt wird.

Leider benutzt aber die Mehrheit der Zielgruppe meiner Webseite den Internet Explorer.

Daher kann man ihn leider nicht einfach so ignorieren.

 

Share this post


Link to post
Share on other sites
Guest
You are commenting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×