Redirect met anker maken.

Status
Niet open voor verdere reacties.

pieter53

Gebruiker
Lid geworden
1 jan 2007
Berichten
297
Ik heb een redirect met behoud van ankers nodig.
De oude URL was bijvoorbeeld:
Code:
http://www.debinnenvaart.nl/binnenvaarttaal/woord.php?woord=schi#schip
en dat moet worden
Code:
https://www.debinnenvaart.nl/binnenvaarttaal/index.php?woord=schi#schip

woord.php moet dus door index.php vervangen worden/
Het is belangrijk dat het anker (#schip) behouden blijft.

Nu lijkt een woord.php bestand met daarin een (client side) script (javascript) oplossing te kunnen bieden,
maar ik heb geen enkele kennis van javascripts.
Wie kan me helpen?

Alvast bedankt voor het meedenken.

(O ja, hier wat gevonden, maar ik snap er niets van :-( )
 
Laatst bewerkt:
Verwijderd, verkeerde sectie
 
Laatst bewerkt:
Als je het onderstaande in bestand .htaccess (begint met punt) op de webserver zet kan je denk ik verder.

Code:
### rewrite on. gebruik / bij webroot of /dirnaam bij subdirectory
RewriteEngine On
RewriteBase /

### redirect naar https://www indien dit niet het geval is
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} !^www\.debinnenvaart\.nl$
RewriteRule ^(.*)$ https://www.debinnenvaart.nl%{REQUEST_URI} [L,R=301]

### redirect binnenvaarttaal/woord.php naar binnenvaarttaal/index.php
### tenzij de url een bestaande file of directory is
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^binnenvaarttaal\/woord\.php(.*)$ https://www.debinnenvaart.nl/binnenvaarttaal/index.php$1 [L,R=301]
 
Laatst bewerkt:
Dat ziet er goed uit!
Bedankt!

Alleen, ik verwachtte een javascript o.i.d. dus is er misschien een probleempje.
Ik heb geen toegang tot de root van dit domein.
Ik kan wel een .htaccess in https://www.debinnenvaart.nl/binnenvaarttaal plaatsen,
maar dus niet in https://www.debinnenvaart.nl
Ik weet niet of dat wat uitmaakt.

Ik heb van 'De Binnenvaart' begrepen dat het http/https 'probleempje' deze week opgelost gaat worden,
dus dat is wat minder urgent.

Na wat geëxperimenteer kwam ik tot deze 'oplossing' (nog niet uitgebreid gestest).
Ik plaats een woord.php bestand in https://www.debinnenvaart.nl/binnenvaarttaal met de navolgende inhoud.

Code:
<!DOCTYPE html>
<html>
<body>

<script>
window.location.pathname = 'binnenvaarttaal/index.php'; 
</script>

</body>
</html>

Een link met debinnenvaart.nl/binnenvaarttaal/woord.php?woord=wer#windkracht wordt nu netjes doorgestuurd naar debinnenvaart.nl/binnenvaarttaal/index.php.
Tenminste, daar lijkt het op.
Maar misschien zitten er nog addertjes onder het gras of komen er apen uit de mouw en blijk ik dus een bok geschoten te hebben.
In ieder geval bedankt voor het meedenken en als het niet goed komt probeer ik mijn .htaccess bestand aan te passen.


Enige uren later: Ik geloof dat dit al voldoende is om in het woord.php bestand te hebben
Code:
<script>
window.location.pathname = 'binnenvaarttaal/index.php'; 
</script>
 
Laatst bewerkt:
In PHP is het redirecten met een # hash niet mogelijk. In Javascript is een 301 permanente redirect niet mogelijk. Gelukkig snapt Google wel wat je bedoelt met "window.location" en vervangt de oude url door de nieuwe url in de Google indexering.(info hierover bij 2e antwoord van dit bericht). De beste manier is natuurlijk bestand .htaccess waarmee je overbodige data overdracht tussen webserver en browser voorkomt en de performance goed blijft.

Als je Javascript in bestand woord.php wilt zetten dan kan je dit gebruiken.
Code:
<!DOCTYPE html>
<html><head><meta name="robots" content="noindex,follow"><script>
if (window.location.href.indexOf("/woord.php") != -1)
window.location.replace(window.location.href.replace("/woord.php","/index.php"));
</script></head><body></body></html>

Waarschijnlijk kan je de IF regel eruit halen maar die heb ik voor de zekerheid erin gezet om een eventuele pagina laadlus te voorkomen.

Suc6. Have fun.
 
Laatst bewerkt:
........ De beste manier is natuurlijk bestand .htaccess waarmee je overbodige data overdracht.......

Bedankt voor de reactie.
Nog een nachtje over slapen, maar ik denk dat ik dan toch maar voor DE BESTE MANIER kies.:)
 
Zie #3 . In htaccess het volgende omdat htaccess in een subdirectory ligt/zit/staat.
Code:
RewriteBase /binnenvaarttaal
 
Als er een map of bestand "woord.php" bestaat dan zal er geen redirect plaatsvinden door deze regels
Code:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

Je kan beide regels uit htaccess halen zodat je zowel index.php als woord.php kan laten staan.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan