Rewrite wordt aan url toegevoegd elke keer als erop link wordt geklikt
In alle browsers behalve IE en Edge werkt mijn website prima maar op laatstgenoemde browsers wordt elke keer als ik klik op een link die een rewrite in gang moet zetten de link verlengt.
Ik zal een voorbeeld geven:
info/diensten.html
rewrite naar
catlisting.php
Dat werkt prima de eerste keer wanneer erop wordt geklikt, maar wanneer ik op die pagina nog een keer op dezelfde link klik, of een andere link in het menu (zijn allemaal men u items). Dan krijg ik deze pagina:
info/info/diensten.html
En als ik op die pagina weer op dezelfde link klik, kom ik hier:
info/info/info/diensten.html
Etcetera.
Het vreemde is dat wanneer ik hover over de link, ik in het witte tekstvakje linksonderin de browser kan zien dat hij netjes linkt naar:
info/diensten.html
Zoals het moet zijn, maar dat is niet waar ik eindig door op de link te klikken.
Mijn ht access:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
DirectoryIndex
RewriteEngine on
#Indexes uitzetten
Options -Indexes
#Cross site access toestaan
Header set Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
#sitename
DirectoryIndex index.php
RewriteRule ^info/(.*).html catlisting.php?alias=$1 [L,QSA]
RewriteRule ^(.*).html dienst.php?alias=$1 [L,QSA]
RewriteEngine on
#Indexes uitzetten
Options -Indexes
#Cross site access toestaan
Header set Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
#sitename
DirectoryIndex index.php
RewriteRule ^info/(.*).html catlisting.php?alias=$1 [L,QSA]
RewriteRule ^(.*).html dienst.php?alias=$1 [L,QSA]
Het moet wel iets met de htaccess zijn want als ik het menu inspecteer via de browser dan staan alle anchor tags gewoon goed, ook als ik met een link eindig op info/info/info/info/info/blalal.html dan staat in de anchor tag nog steeds info/blalal.html
Hoe zou dit kunnen komen?
Ik heb al geprobeerd query string append uit mijn htaccess te verwijderen maar deed niks (ook geen oplossing want ik heb het nodig.)
<a href="/info/diensten">
dus met een / voor info.
Waarom andere browsers dat wel doen zoals je wilde, is me niet duidelijk
2 mogelijke oplossingen: gebruik absolute paden (dus in plaats van info/diensten.html gebruik je /info/diensten.html) of stel een base href in.
Ben van Velzen op 25/01/2018 11:05:03:
Dat is niet heel vreemd als je relatieve paden in je links gebruikt.
2 mogelijke oplossingen: gebruik absolute paden (dus in plaats van info/diensten.html gebruik je /info/diensten.html) of stel een base href in.
2 mogelijke oplossingen: gebruik absolute paden (dus in plaats van info/diensten.html gebruik je /info/diensten.html) of stel een base href in.
Ik heb een base href ingesteld.
<base href="//website.nl/_extern/lbita/">
Wanneer ik een / voor de info in de url zet krijg ik een 404 page (dan neemt hij de base tag niet mee) en als ik de / achter mijn base tag weghaal dan laden mijn css/js etc niet meer.
Ik zei dus OF. Niet EN.
Zorg er dan wel voor dat je een soort van functie gebruikt om deze URL's op te bouwen zodat wanneer je je site verplaatst (naar een andere protocol, domein en/of subdirectory) dat dit een kwestie is van configuratie-parameters veranderen waar deze linkfunctie vervolgens gebruik van maakt zodat de URL's automatisch meeveranderen. Vermijd dus hardcoding zodat je je site mobiel kunt houden en deze niet verandert in een baksteen.
EDIT: ook voor ontwikkeling heeft dit voordelen: je kunt dan middels configuratie een ontwikkel- (, test-) en productie-omgeving inrichten die verder precies hetzelfde werkt. Geen omslachtige URL search-and-replaces of (nog erger?) zooi als je hosts-file aanpassen om een "live" domein te simuleren.
Gewijzigd op 25/01/2018 14:47:54 door Thomas van den Heuvel
Ben van Velzen op 25/01/2018 11:30:14:
Ik zei dus OF. Niet EN.
Ja en in beide gevallen werkt het niet.
Hoe roep je dan nu je CSS en JS bestanden dan op?
Snelle Jaap op 25/01/2018 11:12:12:
Wanneer ik een / voor de info in de url zet krijg ik een 404 page (dan neemt hij de base tag niet mee) en als ik de / achter mijn base tag weghaal dan laden mijn css/js etc niet meer.
Voor hyperlinks (interne links) zou ik volledige URL's gebruiken.
Tevens een base href, met trailing slash
Voor verwijzingen naar CSS- en JavaScript bestanden relatieve URL's, met een leading slash.
Voor afbeeldingen waarnaar verwezen wordt binnen de CSS relatieve verwijzingen ten opzichte van de CSS.
Voor afbeeldingen waarnaar direct verwezen wordt binnen HTML ook relatieve URL's met een leading slash.
Als je dit stramien volgt zou je geen problemen moeten ondervinden.