[IE7] Moeite met trailing-slash

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • posttoast
  • Registratie: April 2000
  • Laatst online: 01:00
Cryptische topictitel, maar het is precies wat er aan de hand is. Ik heb een simpele pagina opgezet: http://dev.posttoast.nl/got-test/studio

Middels een zelfgebouwde frontcontroller zorg ik ervoor dat alles na got-test/ op de juiste plek terecht komt. In dit geval wordt dus de module "studio" geopend. Werkt allemaal prima, alleen gaat het in IE7 mis als ik er een slash achter zet. Oftewel:

dit werkt wel: http://dev.posttoast.nl/got-test/studio
dit werkt niet: http://dev.posttoast.nl/got-test/studio/

Vervelend, want ik heb ook subpagina's (bijvoorbeeld http://dev.posttoast.nl/got-test/studio/directions).

Wat gaat er mis? Ik heb geen idee, maar in ieder geval wordt de stylesheet niet goed ingeladen. Ik vermoed dat er iets verkeerd gaat met de interpretatie van de base href, maar wat...? Je ziet dit ook goed aan het linkje dat verwijst naar "." (oftewel de root van de site, de base href). Die werkt alleen als er geen / achter de URL staat. In alle andere browsers gaat het goed (IE6 incluus).

Het meest bizarre is dat het wel werkt als ik de gegenereerde broncode opsla als test.html en die open met IE. Het zit hem dus echt in die slash. Browserbug, of doe ik iets verkeerd?

Voor de volledigheid de broncode:

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="nl">
  <head>
<!--BEGIN title -->
    <title>Test</title>
<!--END title -->
<!--BEGIN base_href -->
    <base href="http://dev.posttoast.nl/got-test/">
<!--END base_href -->
<!--BEGIN stylesheets -->
    <link rel="stylesheet" href="_styles/screen.css" type="text/css" media="screen,projection">
<!--END stylesheets -->
  </head>

  <body>

    <a href=".">test</a>

  </body>

</html>

omniscale.nl


Acties:
  • 0 Henk 'm!

  • 2playgames
  • Registratie: Februari 2005
  • Laatst online: 01-06 15:19
Misschien een soort bug waarbij hij de base negeert als je een map (want zo ziet de url eruit) opent.

Geen oplossing, maar wel een workaround: verwijs in je servercode de url met slash gewoon door naar die zonder slash (met een "Location: ...." header).

Acties:
  • 0 Henk 'm!

  • posttoast
  • Registratie: April 2000
  • Laatst online: 01:00
2playgames schreef op zaterdag 29 november 2008 @ 20:37:
Misschien een soort bug waarbij hij de base negeert als je een map (want zo ziet de url eruit) opent.

Geen oplossing, maar wel een workaround: verwijs in je servercode de url met slash gewoon door naar die zonder slash (met een "Location: ...." header).
Die workaround werkt helaas niet wanneer ik een pad als deze heb: "www.domein.com/studio/contactinfo". "studio" is dan de hoofdgroep, "contactinfo" de subpagina. En hier gaat IE7 dus over zijn nek.

Het lijkt inderdaad op een bug, maar ik ben toch niet de eerste die op deze manier met een mod-rewrite achtige oplossing dit probeert te doen?

omniscale.nl


Acties:
  • 0 Henk 'm!

  • Blaise
  • Registratie: Juni 2001
  • Niet online
Ik heb ook mod rewrite zaken, maar in mijn cms definieer ik een constant met daarin de base path die ik voor elke interne uri zet. <base> vermijd ik expres, door dit soort bugs en doordat het irritant werkt met anchors.

Acties:
  • 0 Henk 'm!

  • posttoast
  • Registratie: April 2000
  • Laatst online: 01:00
Blaise schreef op zaterdag 29 november 2008 @ 21:59:
Ik heb ook mod rewrite zaken, maar in mijn cms definieer ik een constant met daarin de base path die ik voor elke interne uri zet. <base> vermijd ik expres, door dit soort bugs en doordat het irritant werkt met anchors.
Tja, dat is ook een manier. Maar ik vind dat zelf niet zo netjes eigenlijk. Ik vind een link als <a href="http://www.domein.nl/pagina.html"> toch minder mooi dan <a href="pagina.html">. Als het niet anders kan, dan moet het maar.

Maar heeft iemand anders hier misschien nog ideeën? Ik wil toch wel graag <base> gebruiken.

[ Voor 8% gewijzigd door posttoast op 29-11-2008 22:57 ]

omniscale.nl


Acties:
  • 0 Henk 'm!

  • Blaise
  • Registratie: Juni 2001
  • Niet online
Ik gebruik geen subdomains, dus dan is de base path meestal gewoon / en dan krijg je <a href="/pagina.html">.

Maar om terug te komen op je bug: Heb je het alleen met een punt (<a href=".">)? of ook als je <a href=""> doet?

Acties:
  • 0 Henk 'm!

  • posttoast
  • Registratie: April 2000
  • Laatst online: 01:00
Blaise schreef op zaterdag 29 november 2008 @ 23:11:
Ik gebruik geen subdomains, dus dan is de base path meestal gewoon / en dan krijg je <a href="/pagina.html">.

Maar om terug te komen op je bug: Heb je het alleen met een punt (<a href=".">)? of ook als je <a href=""> doet?
Het is niet alleen de ".", het is bijvoorbeeld ook "test.html". Hij plakt dan niet de base-href ervoor, maar de "huidige" directory. En als je er dus geen / achter zet gebeurt het niet. Vaag he?

omniscale.nl

Pagina: 1