JavaScript <base> funktioniert nur selektiv

Hey HaBo.

Und mal wieder hab ich ein Problem^^ (bin ich froh das ich euch hab xD)
Und dieses mal funktioniert mein <base>-Tag nur bei ausgewählten Dateien.
Als Hintergrundinfo:
Ich hab ein Projekt in einem Verzeichnis a là
http://server/work/bla/asdF/projekt/

Dort ist nun eine .htaccess wodurch alle 'subdirs' die Aufgerufen werden auf die index weitergeleitet werden und diese dann je nachdem entsprechende Dinge ausführt.

Wenn ich nun [...]/index/ aufrufe, funktioniert alles ordnungsgemäß.
Zum Sprachwechsel hab ich ein Script, welches per AJAX den Server auf den Sprachwechsel aufmerksam macht, der dann eine Session-Variable setzt und bei erfolg wird die Seite neu geladen.
Dieses ruft [...]/ajax/language/blablabla auf => Funktioniert.

Wenn ich jedoch [...]/register/ aufrufe, funktionieren die Javascripts nimmer
Das Sprachscript ruft [...]/register/ajax/language/blablabla auf.
Ich kann mir aber absolut nicht erklären wie dies kommt.
Die HTML-Codes der beiden ausgegebenen Seiten sind großteils gleich. Den Base-Tag hab ich mehrmals kontrolliert => Ist in beiden Fällen gleich...

Woran kann das liegen?

Falls es hilft, .htaccess & co:
Code:
RewriteEngine on
Options Indexes FollowSymLinks Includes -MultiViews
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([a-z]+)\/?$ index.php?page=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([a-z]+)\/([a-zA-Z0-9]+)$ index.php?page=$1&action=$2 [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^([a-z]+)\/([a-zA-Z0-9]+)\/(.*)$ index.php?page=$1&action=$2&data=$3 [L]
@main-dir:
favicon.ico | inc/ | index.php | notizen.txt | template/

Danke! (:


EDIT:
Was mir gerade noch auffällt:
$ cat register.htm | grep Startseite
<a href="/a/b/index/">Startseite</a><a href="/a/b/register/">Registrieren</a>
$ cat index.html | grep Startseite
<a href="http://localhost/a/b/index/">Startseite</a><a href="http://localhost/a/b/register/">Registrieren</a>

D.h. einmal nimmt Firefox es als http://-Link und einmal als Relativen... Aber wieso? o.O Ich hab eigentlich nichts derartiges im Code stehen...
 
Zuletzt bearbeitet:
Ich vermute mal, du rufst irgendwo ajax/language statt /ajax/language auf.
Abgesehen davon: wenn ich dynamische Seiten habe, generiere ich mir meine Pfade lieber serverseitig... <base> ist irgendwie so ein Tag, den ich seit Jahren in keinem Code mehr gesehen habe ;-)
 
Der Ajax-Kram wird von der gleichen Datei aus geladen.
Mit der dynamischen Pfaderstellung hab ich wohl das Problem, dass ja auch die inkludierten Dateien (template / Javascript) dementsprechend ersetzt werden müssten.
Demnach wäre der Base-Tag schon ziemlich angebracht :/

EDIT:

Ich habs!
Es liegt an den 0xEFBBBF am anfang der Dokumente.
Wenn es vorhanden ist => FAIL.

Warum ist das so? Hat jemand eine logische Erklärung dazu? Und wird dadurch das Charset meiner Dateien "verfälscht"? Hab vor das gesammte Projekt in UTF-8 zu speichern.
 
Zuletzt bearbeitet:
Zurück
Oben