Voorbeelden veel gebruikte .htaccess regels

Een tijdje terug heb ik al eens over de kracht van reguliere expressies in Google Analytics filters geschreven. Maar naast het gebruik van reguliere expressies in GA kun je ze ook nog ergens anders gebruiken: in de .htaccess op je server.

Het .htaccess bestand staat vaak in de root van je server (bij Apache tenminste) en is bedoeld om een aantal instellingen van een folder aan te kunnen passen. Wanneer hij gebruikt wordt in de root kun je de instellingen van alle subfolders aanpassen. Veel van deze instellingen hebben te maken met het afhandelen van binnenkomend verkeer.

Ik wil hieronder een aantal voorbeelden plaatsen van .htaccess regels die veel gebruikt worden. En waarom: omdat ik ze niet uit mijn hoofd ken en ergens een plek wil hebben waar ik ze weg kan knippen en plakken 😉

Voordat een aantal zaken gerewrite worden moeten eerst wat algemenere zaken aangepakt worden:

Bepaalde IP nummers de toegang ontzeggen
Heb je een IP nummer die veel traffic genereert omdat er een soort bot op draait? Blokkeer hem simpel met de volgende regels:
order deny,allow
deny from 12.34.56.78
deny from 78.56.34.12
allow from all

Vanwege de order die ingesteld is worden eerst alle deny's uitgevoerd en dan pas de allows. Zo worden de betreffende IP nummers de toegang ontzegd en kan de rest verder.

Toegang tot de .htaccess ontzeggen
Het kan voorkomen dat men graag wil weten wat er allemaal in je .htacces staat. Omdat te voorkomen plaats je het volgende script:
<Files .htaccess>
order allow,deny
deny from all
</Files>

Deze regels gelden specifiek voor het .htaccess bestand. Op dezelfde manier kunnen ook andere bestanden en folders beschermd worden.

Definieer het index bestand
Wanneer de root of een specifieke folder opgevraagd wordt zal de server gaan zoeken naar het index bestand. Dat is het bestand welke getoond moet worden als er geen bestand gedefinieerd is. Voorbeeld: www.bla.nl/folder/. Over het algemeen staan in de meeste servers de volgende bestanden ingesteld: index.html, index.htm, default.asp (IIS), index.php (Apache). Maar mocht je het aan willen passen:

DirectoryIndex willekeurig.html

Aangepaste foutmeldingen
Veel servers hebben voor veel voorkomende foutmeldingen redelijk waardeloze pagina's ingesteld. Dit moet je veranderen naar de look-en-feel van de site, lees als voorbeeld het goede artikel van Karel Geenen over een eigen 404. Om je zelfgemaakte pagina in te stellen gebruik je de volgende code:

ErrorDocument 403 /fouten/geen-toegang.html
ErrorDocument 404 /fouten/niet-gevonden.html

Basic redirects
Er is een mogelijkheid in de .htaccess om een paar basic redirects in te stellen. Hier kun je geen voorwaarden aan verbinden en je kunt ook geen reguliere expressies gebruiken. Deze zien er als volgt uit:

Redirect 301 /oudebestand.php http://www.voorbeeld.nl/nieuwemap/nieuwebestand.php

Let op dat het tweede adres een volledig adres is, anders werkt het niet. De 301 is de redirect code voor een permanente redirect.

De rewrite engine aan zetten

De basis instellingen zijn gedaan, dan kan nu de rewrite engine aangezet worden om met rewrite regels het inkomende verkeer te begeleiden. Deze regels geven je de mogelijkheid om op basis van enkele gegevens (hostnaam, referer, bestandsnaam, querystring, methode) een rewrite/redirect te doen. Om de engine aan te zetten gebruik je dit:

RewriteEngine on

Eén hostnaam voor je site
Om diverse SEO redenen wil je je site maar op 1 hostnaam beschikbaar hebben. Hierdoor ontstaat er geen duplicate content probleem omdat je site op domein A en domein B geïndexeerd word. Ook wil je niet dat je site op zowel www.site.nl en site.nl geïndexeerd word. Om dit alles te voorkomen plaats je de volgende regels:

RewriteCond %{HTTP_HOST} !^www\.voorbeeld\.nl [NC]
RewriteRule ^(.*)$ http://www\.voorbeeld\.nl/$1 [L,R=301]

Hiermee zegt je eigenlijk: als de hostnaam niet (de uitroepteken staat voor: niet) www.voorbeeld.nl is dan moet er een 301 redirect gedaan worden naar www.voorbeeld.nl. Met een paar extra instellingen als [NC] zeg je dat de case (hoofdletters/kleine letters) genegeerd kunnen worden. Met [L] zeg je dat deze laatste regel direct uitgevoerd moet worden. En met de [R=301] zeg je dat het geen rewrite maar een redirect moet zijn van het type 301 (permanent).

Oude domein / website redirecten
Met bovengenoemde regels kun je de redirect alleen uitvoeren als het oude domein aan de nieuwe server gekoppeld word in de DNS. Hierdoor zullen alle verzoeken op 1 server afgehandeld kunnen worden. Wanneer dit niet kan zul je de redirect op de oude server moeten plaatsen, en die kan er als volgt uit zien:

RewriteRule ^(.*)$ http://www\.nieuwesite\.nl/$1 [L,R=301]

Extreme traffic redirecten
Het kan natuurlijk voorkomen dat je op een site gelinkt wordt waar je niet echt blij mee bent. Het kost enorm veel dataverkeer en de bezoekers zijn waardeloos. Plaats dan een aantal regels om al dit verkeer subtiel door te sturen:

RewriteCond %{HTTP_REFERER} grotesite\.nl [NC]
RewriteRule ^(.*)$ http://www.google.nl [L,R=302]

Bezoekers die dan vanaf de grote site naar jouw site gaan zullen doorgestuurd worden naar Google. Dit kan net het verschil zijn tussen plat gaan en online blijven.

Rewrite alles behalve...
In veel gevallen wordt de rewrite engine gebruikt om zogenaamde nette url's achter de schermen te herschrijven naar 1 bestand die alles afhandelt. Zo kun je het adres /map/map2/bestand/ intern rewriten naar index.php?map/map2/bestand/:

RewriteRule ^(.*)$ /index.php?$1 [L]

Hieraan kun je weer bepaalde voorwaarden verbinden: rewrite alle url's tenzij het een bestaande map of bestand is. Dit kun je gebruiken om links naar bijvoorbeeld PDF bestanden niet te laten herschrijven maar gewoon te negeren:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?$1 [L]

Rewrite een bepaalde folder
Ook kun je 1 bepaalde folder redirecten of rewriten. Je beperkt met een conditie dan de regel tot 1 folder:

RewriteCond %{REQUEST_URI} ^/deze_map/ [NC]
RewriteRule ^(.*)$ /index_voor_map.php?$1 [L]

en als aanvulling heb je nog de volgende 2 regels:

RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{REQUEST_URI} !^/nog_een_map/

Deze regels zeggen dat de request methode GET moet zijn (hier kun je natuurlijk ook POST gebruiken) en dat de folder /nog_een_map/ genegeerd kan worden. Let hierbij op de uitroepteken die dus 'niet' betekent.

Meerdere condities
Wanneer je meerdere condities wil gebruiken kun je ze kopellen met de OR:

RewriteCond %{REQUEST_URI} ^/map1/$ [NC,OR]
RewriteCond %{REQUEST_URI} ^/map2/$ [NC]

Tool
Omdat een fout snel gemaakt is en het testen op een webserver omslachtig kan zijn raad ik aan een regexp checker te gebruiken waarin je on-the-fly je expressie kunt testen. Ik gebruik momenteel The Regexp Coach naar volle tevredenheid.

Tot slot

Ik heb een aantal basis redirect en rewrite regels uitgelegd welke je kunt uitbreiden en combineren waar mogelijk. Veel zaken kunnen hiermee afgehandeld worden. Natuurlijk sta ik open voor suggesties en aanvullingen, ook als je vragen hebt of ergens niet uit komt: drop het in de comments zodat ik het artikel aan kan vullen.

Naast de genoemde zaken kun je nog veel verder gaan in het rewriten. Reguliere expressies zijn verschrikkelijk krachtig en kunnen je veel werk uit handen nemen.

Click to activate social bookmarks

 
  • Een veelgebruikte van mij is
    Options +Indexes
    en
    Options -Indexes

    Vergeet ook niet om AllowOverride in de httpd.conf goed te zetten

    • trevor

      is dit het antwoord op mijn vraag

    • Vero

      Sorry, ik ben nog aan het leren. Waar kan ik httpd.conf vinden? Ik zie configuration.php. Is het hetzelfde? Wilt u zo vriendelijk zijn en deze AllowOverride code mij geven? "Options -Indexes" deze woorden in .htaccess ?

      • httpd.conf vind je afhankelijk van het besturingssysteem in /etc/apache2 (linux) of de Apache installatiedirectory (Windows). Als dit niet goed staat zal de aanpassing in .htaccess niet herkend worden.

  • Website promotie

    Inderdaad veelgebruikt, maar je moet altijd oppassen. Veel provider hebben bepaalde commando's uitgeschakeld. Een aantal zaken, die je bijv. niet in .htaccess kunt regelen (zoals argument separator input), kun je bijv. ook met een lokale php.ini wijzigen.

    Een oude naar een nieuwe site redirecten met 301 is handig, maar een 301 neemt toch geen PR mee?

  • @Website promotie: juist de 301 neemt de PR mee, de 302 niet omdat die voor een tijdelijke redirect staat 🙂

  • Website promotie

    Ik was van mening dat een direct link altijd ging boven een 301 redirect, wat PR betreft. Dat een 301 alleen belangrijk was om de oude link te vervangen door de nieuwe, maar dat dat dus een negatieve invloed had op de PR. Maar niet dus. Bedankt André!

  • André,

    Erg leuke post, al kwam deze voor mijn fuseer-project een beetje laat! 🙂 In ieder geval nogmaals bedankt voor je tips die je me hebt gegeven over .htaccess en nog steeds geeft!

  • Jakko

    Beste Andre,

    Ik ben weken bezig om een probleem op te lossen maar kom er niet uit.

    Ik heb op een Apache server 3 websites staan. Na public.html heb ik 3 subfolders staan.

    website 1 te vinden in subfolder 1
    website 2 te vinden in subfolder 2
    website 3 te vinden in subfolder 3

    Website 2 en 3 doen het voor een groot deel prima maar linken echter (bij bv alle hyperlinks in mails) alletwee naar website1.

    Voorbeeld voor website 2:

    website 1/subfolder 2/ ipv website 2/subfolder 2.

    Volgens mij moet ik iets in het htaccess erbij schrijven/wijzgen, maar kom er niet uit wat dat is.

    Gr Jakko

  • Je hebt dus ook 3 website adressen begrijp ik? En die 3 adressen hangen aan 1 server waardoor eigenlijk alle 3 submappen ook op 3 adressen te bereiken zijn en zo dus 9 keer geïndexeerd kunnen worden? Dan kan de oplossing als volgt zijn:

    RewriteCond %{HTTP_HOST} ^www\.website1\.nl [NC,OR]
    RewriteCond %{REQUEST_URI} ^!/map1/ [NC]
    RewriteRule ^(.*)$ http://www\.website1\.nl/map1/$1 [L,R=301]

    RewriteCond %{HTTP_HOST} ^www\.website2\.nl [NC,OR]
    RewriteCond %{REQUEST_URI} ^!/map2/ [NC]
    RewriteRule ^(.*)$ http://www\.website2\.nl/map2/$1 [L,R=301]

    RewriteCond %{HTTP_HOST} ^www\.website3\.nl [NC,OR]
    RewriteCond %{REQUEST_URI} ^!/map3/ [NC]
    RewriteRule ^(.*)$ http://www\.website3\.nl/map3/$1 [L,R=301]

    Met andere woorden:

    Conditie: Als de hostnaam website1 is
    Conditie: En de foldernaam is niet map1
    Regel: redirecten naar map 1

    Let wel: ik heb dit niet getest, wellicht zul je hier en daar wat moeten finetunen 🙂

  • Hallo,

    Ik lees de weblog al een tijdje maar hier heb ik even een vraagje over.
    Hoe zorg ik dat http://www.site.nl doorgestuurd word naar site.nl?

    Bedankt

  • Gebruik dan deze:

    RewriteCond %{HTTP_HOST} !^voorbeeld\.nl [NC]
    RewriteRule ^(.*)$ http://voorbeeld\.nl/$1 [L,R=301]

  • Zeer hard bedankt André,
    ik zal binnekort wanneer mijn website klaar is zeker eens een artikeltje over u schrijven!

  • website optimaliseren

    Veel mensen willen in hun menu de homepage nog weleens linken met index.php of index.html terwijl http://www.domein.nl toch weer anders is als http://www.domein.nl/index.php om dit probleem te corrigeren zou in het menu gelinkt moeten worden naar "/ " ipv "index.php" en in de htaccess dit toegveogd moeten worden:

    RewriteRule ^index.php$ / [R=301,L]

  • P.Spee

    Hallo,
    Is het mogelijk om een 500 error (internel server error) te laten doorverwijzen naar een .htm op de eigen HD?
    C:/ditlatenzien.htm

    met dank voor 't antwoord.

  • Waarom zou je dat willen? In theorie moet dat mogelijk zijn, maar als ik op jouw site een 500 error krijg wordt ik doorverwezen naar mijn eigen schijf. En daar staat uiteraard dat bestand niet. Of ga je het alleen voor jezelf gebruiken?

  • website optimaliseren

    Andre je laat ook zien hoe te verkomen dat iemand je .htaccess kan ontzeggen maar hoe kun je deze (indien de door jouw genoemde regel niet toegevoegd is) uberhaupt iemands .htaccess zien? Het is geen kwestie van http://www.domein.nl/htaccess

    Alvast bedankt

  • Dat kan niet 🙂

  • website optimaliseren

    Maar waarom dit dan:

    Toegang tot de .htaccess ontzeggen
    Het kan voorkomen dat men graag wil weten wat er allemaal in je .htacces staat. Omdat te voorkomen plaats je het volgende script:

    order allow,deny
    deny from all

  • Er zijn natuurlijk wel andere manieren waarmee je een .htaccess uit kunt lezen. Minder legale manieren zeg maar.

  • p.spee

    Aan André.
    jip is ook bedoeld om te verwijzen naar een eigen PC.

    de index staat online op bv: http://subdomein.domeinnaam.nl/index.php

    het lijkt me dan dat de .htaccess zou moeten komen in de dir /domeinnaam/subdomeinnaam/.htaccess

    Er staat nu:
    ErrorDocument 404 C:\nietgevonden.htm
    ErrorDocument 500 C:\hikvandeserver.htm

    Een 500 error komt niet zo vaak voor op 'n dag, dus is wat lastig om dat in de praktijk te testen. Maar kloppen mijn bovenstaande veronderstellingen en regels?

  • Ik vermoedt dat het niet werkt. De server probeert die bestanden te laten zien wanneer er een 404 of 500 error optreed. Alleen de server kan niet bij je harde schijf.

    Een optie kan zijn om een online bestand te gebruiken waarin je met php een redirect plaatst naar je lokale bestand.

  • p.spee

    ja, je bedoeld?

    verwijzen naar een error.htm op bijvoorbeeld de ruimte van mijn account bij mijn inbelprovider. Waarbij die .htm dan doorstuurd naar C:\hikvandeserver.htm

  • Ja 🙂

  • website optimaliseren

    Deze wil je zeker niet delen met ons?

  • Nee 😉

  • p.spee

    Ik ga dit weekend eens kijken wat ie doet. Een 500 error is niet iets wat ik zomaar kan oproepen, dus dat wordt bij toeval er tegen aanlopen.

    Als ik in de .php een Meta refresh invoer op 10 sec, zal ik de 500 error best wel eens tegen komen. En vervolgens kijken of ie inderdaad naar een pagina op de server van de inbelprovider gaat.

    Verder ga ik op zoek naar een javascriptje die ververst naar de inbelprovider's pagina indien niet bestaat de .php op de eigen site. Dat lijkt me zelfs een nog betere oplossing. Dus op naar google voor zo'n script. Lijkt me voor een deskundige een kleine klus. kleine kosten zijn dan niet erg. Of kun jij dat André?
    tot zover bedankt.

  • Voor een script kun je me het beste even mailen 🙂 En voor wat betreft het testen: je kunt natuurlijk testen met de 404. Als die werkt kun je er van uitgaan dat de 500 ook werkt.

  • Jan

    Ik zoek nog steeds naar het volgende:

    bezoekers komen op site A. Ze kunnen ook naar een forum op site B via Asite.nl/forum Nou komt het ades van site B in de adresbalk te staan. Dat wil ik niet, ik wil dat Asite.nl/forum in de adresbalk blijft staan. Dat kan wel met een frame, maar dan moet men zich elke keer aanmelden op dat forum. Wat ik wil is dus dat het adres in de adresbalk niet verandert, maar de redirect wel plaatsvindt zonder dat er elke keer hoeft te worden ingelogd. Dat is een irritant trekje van een framespagina dat redirect 301 niet heeft. Is er een oplossing?

  • Jan

    Nou, de reacties zijn overweldigend. Ik laat het hier maar bij. Reageren is niet meer nodig.Besjoer.

  • Superdeluc

    Thanks! Heb de .htaccess aangepast want wil mijn weblog tijdelijk afschermen maar nog wel vindbaar zijn voor mensen die mijn pagina's hebben gebookmarkt.

    Regeltje toevoegen aan je .htaccess en de index.php is niet meer leading pagina wat het wel was.

    DirectoryIndex index.htm

  • Marco

    Hallo,

    Ik heb een website draaien met Joomla op een w2k3 server, kan ik dan ook het .htaccess gebruiken? Probeer namenlijk ip-adressen te blokkeren zodat ze niet meer op de site komen, maar als ik mijn eigen adres ingeef om te testen kan ik gewoon nog steeds de site benaderen.
    Groeten,
    Marco

  • Vraag de partij die de server beheert of zijn .htaccess ondersteunen. Ik denk het niet aangezien .htaccess een bestand is dat bij Apache hoort en niet bij IIS. Misschien bieden ze andere mogelijkheden in de vorm van een ISAPI Rewrite module.

  • Marco

    Wordt niet ondersteund, in iedergeval bedankt.

  • KUn je ook redirecten (via rewritecond) op een deel van een domeinnaam?

    bvd

    Ralph

  • @Ralph: ja dat kan, je kunt redirecten op een deel van je url. Dus op het subdomein, hoofddomein, folder, bestandsnaam en querystring. Als ik je moet helpen moet je even een email sturen.

  • niels

    is me uiteindelijk gelukt met

    RewriteCond %{QUERY_STRING} ^([a-z]+)_([a-z]+)$
    RewriteRule ^index\.php$ index.php?%1-%2 [R=301,L]
    RewriteCond %{QUERY_STRING} ^([a-z]+)_([a-z]+)_([a-z]+)$
    RewriteRule ^index\.php$ index.php?%1-%2-%3 [R=301,L]

    voor de underscores

    en

    RewriteCond %{QUERY_STRING} ^(.+)$
    RewriteRule ^index\.php$ http://rokenzondersigaret.nl/%1/? [R=301,L]

    voor de rest

    niels

  • Bert

    Dank je André!

    Vind dit een mooi en overzichtelijk overzicht!

    Bert

  • Hallo André,

    Ik heb een vraag, ik heb een advertentiesite hiervoor zou graag van mijn subcategorieen subdomeinen willen maken. Dit lukt wel maar dan blijft het adres van de subdomein in het adresbalk staan als je in een andere subcategorie klikt blijft de webadres van de subdomein staan. Is het mogelijk om de subdomein te laten redirekten met een folder zodat ik niet dubbele content heb staan in de index van Google?

    Met vriendelijke groet,

    Gino

  • Als je het consequent toepast zou je bij het wisselen van categorie automatisch naar een ander subdomein moeten gaan. Als je dat oplost heb je ook geen problemen met dubbele content.

  • Jouke

    Hà Andre,

    Ik vind het super dat je iedereen zo goed helpt! 😉

    Zou je mij ook kunnen helpen,

    Ik heb een website waarbij de pagina's zo worden opgevraagd:

    voor bijvoorbeeld pagina1: "index.php?pag=1"
    en voor 2: "index.php?pag=2"
    en ga zo maar door.

    Nu zou ik graag willen dat alles achter de ? verdwijnt, en dat er iets komt te staan als:
    http://www.voorbeeld.nl/2/
    ipv
    http://www.voorbeeld.nl/?pag=2
    of http://www.voorbeeld.nl/index.php?pag=2

    zodat het een vaste url lijkt.

    Hoe moet ik dat precies fixen, want ik kom er niet helemaal uit.
    Ik heb wel het een en ander geprobeert, maar toen kreeg je de pagina wel bij: http://www.voorbeeld.nl/2/ maar las hij probeerde hij gelijk alles (afbeeldingen e.d) ui de 'map' 2 te lezen. en dat gaat natuurlijk niet.

    (de links waar mensen op klikken bestaat uit bijvoorbeeld: href="?pag=1", moet dat dan ook aangepast worden naar bijvoorbeeld href="2/" ?)

    Alvast bedankt!

  • Hallo Jouke, wat je nodig hebt zijn de regels die genoemd worden onder het kopje "Rewrite alles behalve...". Daarmee geef je aan dat echte bestaande bestanden niet gerewrite moeten worden en de rest wel 🙂 En ja, vervolgens moet je de links naar de oude adressen aanpassen naar de nieuwe. Je zou zelfs een redirect kunnen plaatsen op de oude adressen zodat links naar die adressen doorgestuurd worden naar de nieuwe.

  • Jouke

    Hallo Andre,

    Top, het werkt min of meer 😉
    Ik heb hem nu zo:

    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*).html$ /index.php?$1 [L]

    En als ik naar: http://www.voorbeeld.nl/3.html
    ga, kom ik gewoon netjes op de website, maar wel op de index pagina, en niet pagina 3.
    Ik neem dus aan dat ik wat in de php code zou moeten verandere wat de $_GET van de pagina betreft of is dat niet nodig?

    Laatste vraagje hoor 😉

    Groeten,
    Jouke

  • Jouke

    Laat maar zitten, is opgelost, moest natuurlijk gewoon "RewriteRule ^(.*).html$ /index.php?pagina=$1 [L]" zijn.

    Alsnog bedankt voor je hulp! 😉

  • Nens

    Hallo André,

    Een zeer interessant onderwerp, maar helaas kom ik (hobbyist) er maar niet uit.
    Ik heb een programma dat ik op de server heb gezet. Dit is een programma om formulieren te maken.
    In het programma zit het beruchte (inmiddels voor mij) .htaccess bestand.
    Alleen zie ik niet dat dit bestand is geuploaded. Hij geeft wel aan dat het gelukt is.

    Heb je enig idee wat ik nu moet doen?
    Alvast hartelijk dank!
    Nens

  • Veel FTP clients laten dit bestand niet zien, maar als de melding verschijnt dat het gelukt is staat het bestand er wel 🙂

  • Nens

    Bedankt voor je antwoord!
    Ik kon middels file mask in het ftp-programma het bestandje traceren.

    Wat is eigenlijk de reden hiervan?

  • Peter

    Beste Andre

    Ik wil 1 bestand beschermen met .htaccess in een bepaalde directory op de server.
    namelijk ../cgi-bin/csvedit.pl.
    Hoe kan ik dit bestand middels .htaccess en .htpasswd beschermen ?

    alvast bedankt
    Peter

  • @Peter: daar zijn een heleboel tutorials over te vinden, ik zou die eens doornemen 😉

  • Leon

    Ik ben bezig geweest met Simple URL's en heb de onderstaande code daarvoor gebruikt:

    RewriteRule ^home/$ test.php?p=1 [L]

    Dit werkt in principe prima, maar er MOET een / achter de URL geplaatst worden. Is er een rule oid waarmee er automatisch een / achter het url gezet, als dit nog niet geval is? Anders zou ik alle rules(stuk of 30) 2x in de .htaccess moeten zetten, een keer met en een keer zonder / achter het url... beetje onzinnig...

    Verder complimenten over dit onderwerp! heeft me enorm geholpen!

  • @Leon: kijk hier eens naar. Er zijn diverse scripts die een slash aan je URL kunnen toevoegen 😉

  • Wouter

    Beste Andre,

    Ik heb gezocht op internet maar heb niets nuttigs kunnen vinden over het volgende:

    Wanneer op mijn website http://mijnwebsite/index.php wordt aangeroepen wordt dmv een include de generator.php aangeroepen die in de subdirectory 'php_include' staat. De generator genereert de html van de pagina. Nu wil ik in het .htaccess bestand beschrijven dat deze map en alles wat er in staat niet van buitenaf benaderbaar/zichtbaar is. Maar alleen door lokale bestanden (zoals index.php). Hoe is dit te realiseren?
    De enige zaken die ik vind op internet is beveiliging van een directory dmv een username en password. Dat wil ik niet. Ik denk dat het met htaccess op te lossen is alleen ken ik misschien niet de juiste zoektermen :).

    Bij voorbaat dank,

    Wouter

  • Henk Kregting

    Hallo,
    Is het mogelijk om in een htaccess bestand een regel op te nemen waarin een gebruiker die zich inlogt via een inlogscherm direct naar zijn gedeelte van de site gelinkt wordt.
    Ik gebruik Apache op mijn server.

    Henk kregting

  • @Henk: je moet eens zoeken naar .htpasswd, tezamen met de .htaccess kun je zaken met een wachtwoord beveiligen. Maar het redirecten is hier niet mee te regelen, dan kun je beter een PHP login maken die dat wel kan.

  • Henk Kregting

    Andre,

    Bedankt voor je antwoord.
    Met htaccess e.t.c ben ik goed bekend maar je weet nooit of je alles kent vandaar de vraag.
    Met PHP ben ik niet bekend zou me daarin moeten verdiepen.
    Volgende vraag.....
    Ik last van het steeds maar inloggen van 127.0.0.1 meerdere malen per uur.
    Welk program veroorzaakt dit en wat kan ik er aan doen.

    Henk

  • reginald

    Hallo André,

    Wil mijn site ook wat SEo vriendelijker maken door aan URL rewriting te doen, het gaat me hier vooral om dergelijke urls zie http://www.global-vision.be/site/page.asp?pageid=85
    ik dacht de titel te gebruiken om te eindigen in zoiets als http://www.global-vision.be/site/wat-is-webdesign
    Kan je me even op weg helpen?
    R

  • R.E

    Beste Andre,

    Allereerst mijn complimenten voor dit artikel en deze site, erg duidelijk en heeft me al een paar geholpen.
    Nu loop ik echter met een andere site tegen een probleem aan:

    Ik ben denk ik ook één van de velen die zijn site te snel online heeft gebracht. Pas later ben ik gaan beseffen dat mooie urls niet alleen voor het oog leuker zijn, maar ook dat zoekmachine er iets mee doen.

    Ik gebruik Joomla 1.5 met de 3 standaard SEF opties op aan, dat geeft op zich hele mooie urls.

    Mijn probleem:

    De oude link:
    caviapret.nl/index.php?option=com_content&view=article&id=65&Itemid=34

    De nieuwe link:
    caviapret.nl/de-ziektes-en-symptomen-van-een-zieke-cavia.html

    De code in mijn .htaccess:
    redirect 301 /index.php?option=com_content&view=article&id=65&Itemid=34 http://www.caviapret.nl/de-ziektes-en-symptomen-van-een-zieke-cavia.html

    Typ je vervolgens de oude url in je browser kom je gewoon op het oude adres uit, dus het werkt nog niet echt... 🙂
    Is dit uberhaupt mogelijk met dit soort links?, andere werken namelijk wel.

    Ben al dagen aan het zoeken, overal vind je wel topics over dit probleem maar tot op heden maar weinig met een echte simpele oplossing...

    Alvast bedankt voor je hulp!

  • Hallo R.E., probeer het eens zo:

    RewriteEngine On
    RewriteCond %{REQUEST_URI} ^/index\.php [NC]
    RewriteCond %{QUERY_STRING} ^option=com_content&view=article&id=65&Itemid=34
    RewriteRule ^(.*)$ http://www.caviapret.nl/de-ziektes-en-symptomen-van-een-zieke-cavia.html [L,R=301]

  • R.E

    Bedankt voor je antwoord!

    Maat het wil nog niet lukken, hij redirect niet naar de nieuwe pagina.

    Maar als ik nu met een sitemap de nieuwe urls opstuur met Google webmaster tool, ziet hij die dan als hoofd urls?

    Ik hoef de ranking niet perse mee te nemen, misschien moet ik de oude urls daar gewoon verwijderen? Het gaat mij er om dat hij de nieuwe pakt. Of kan dat dan nog een tijdje duren?

  • Dag andré,

    Hoe kan ik dit best oplossen als een bezoeker een fout id meegeeft?
    Zou graag dan de bezoeker doorgesturen naar de homepage.
    http://www.voorbeeld.be/site/page.asp?pageid=52
    mvg
    R

  • @R.E. dan moet je gewoon wachten en dan komt het vanzelf goed 😉

    @reginald: je kunt eenvoudig in de page.asp uitlezen of het id niet klopt en mensen dan vanuit de asp redirecten.

  • Beste Andre,

    Ik heb met "mijn website" van Easy Computing een site gemaakt waar men via een disclaimer verder naar de site gaat. Echter kan men ook de andere pagina's rechtstreeks benaderen waardoor men de disclaimer kan omzeilen.
    Gezien dat dit de eerste keer is dat ik een site opbouw ben ik dus geheel onwetend in dit soort zaken.
    Hoe kan ik het oplossen dat men wel ten allen tijden op de startpagina uitkomt zodat men altijd de disclaimer moet passeren.

  • Beste Andre,

    Het wil maar niet lukken om na het open van http://www.wandeltraining.nl/tipweeka35.htm in de adresbalk http://www.wandeltraining.nl/tipweek.htm te krijgen.

    Ik heb het een en ander geprobeert via:

    RewriteEngine On
    RewriteRule ^tipweek([a-z0-9]{3}).htm tipweek$1.htm

    Is RewriteRule wel de juiste methode of moet ik iets anders gebruiken?

    Alvast bedankt.

    Stef

  • @Stef: je moet die $1 weglaten en de . escapen met een \. Dus dan wordt het:

    RewriteEngine On
    RewriteRule ^tipweek([a-z0-9]{3})\.htm tipweek\.htm

  • Jeroen

    Hoi André,

    Ik loop behoorlijk stuk op een htaccess vraagstuk:

    Een site van mij wil ik geheel opnieuw indelen en wil gebruik maken van htaccess om van de oude naar de nieuwe link te redirecten. Nou lukt het mij om één link naar een andere te laten verwijzen maar nu wil ik
    meerdere links naar 1 andere link redirecten in één keer zoals hieronder:

    RewriteEngine On

    Redirect 301 /plaats/de_eilanden/texel/(alles wat hierachterkomt) http://www.website.nl/eilanden/texel/
    Redirect 301 /zoeken.php?(alles wat hierachterkomt) http://www.website.nl/vakanties/

    Nou probeer ik vanalles met tekens zoals .* om alle karakters te pakken maar dat werkt niet. Wat doe ik verkeerd?

    Alvast bedankt! Jeroen

  • Jorin

    Mooie tutorial, is zeker voor beginners heel handig 🙂

  • marc

    hallo andre,
    van de een op de andere dag heb ik geen google.nl meer ook niet op safari chrome
    of ie8. ik heb tal van forums gelezen ie8 verwijdert en weer erop div registertweaks toegepast systeemherstel gedaan temp. internet files cookies verwijdert div anti virus en malm warescans gedaan en niets helpt ook pingen niet bij het pingen is er wel verbinding met google maar er komt niets op het scherm behalve die foutmelding en provider ziggo kan mij ook niet helpen,
    heb jij nog een idee?
    op het scherm staat dan 404 not found nginx
    de enige google die ik aankan is google.se maar als ik daar doorlink naar google.nl krijg ik weer die error
    mijn systeem is winxp pro
    alvast bedankt en ik hoop dat jij mij kan helpen

    groet marc

    • Als ik jou was zou ik een bevriende computerexpert naar je pc laten kijken. Het lijkt er toch op dat er iets op je pc staat dat alles in de war stuurt.

      • marc

        probleem opgelost met een fix van de microsoft site.
        de hostfile is hernoemd naar old en google is terug.

        groet marc

  • Jay

    Ik heb een folder waarbij ik will dat daarvoor de https wordt gebruikt, en voor alle overige pagina's het gewone volledige http pad.
    (certificaat is geinstalleerd en werkend.)

    Kan dit en hoe?

    Bedankt alvast voor de hulp!
    Groet, Jay

    • Hallo Jay, dat kan prima als je een .htaccess in die folder aanmaakt die er als volgt uit ziet:

      RewriteEngine On
      RewriteCond %{SERVER_PORT} 80
      RewriteCond %{REQUEST_URI} foldernaam
      RewriteRule ^(.*)$ https://www.website.com/foldernaam/$1 [R,L]

  • Snotolf

    Hallo Andre,

    Ik zit met een probleem n.a.v. rewrite-rule
    Via de .htaccess worden alle html doorgestuurd naar index.php?$1
    Voor de posts werkt dit probleemloos, echter de gets (nodig voor icepay)
    komen niet in het php-script terecht.

    Hoe kan ik dit aansturen.

    b.v.d.
    Snotolf

    • Staan de waardes wel in de URL? Dan kun je met PHP eenvoudigweg de URL uitlezen?

      • Snotolf

        Hallo André

        Bedankt dat je zo snel wilt reageren op mijn post op de website.
        Echter het is voor mijn niet duidelijk of het mogelijk is wat ik wil.
        Via een modrewrite heb ik alles doorgestuurd naar de index.php en vanuit hier wordt het raamwerk opgehaald
        (zoals een vaste kop, menu en een voet)
        Afhankelijk van de url wordt het daarbijbehorend php script geincluded.
        In het script kan ik uiteraard ook de post-variabelen uitlezen en verwerken en ik dacht hiermee ook de get-variabelen.
        Deze staan uiteraard ook in de url als ?naam=naam&adres=adres enz.
        De get-variabelen blijken leeg te zijn.

        Mijn vraag is dan ook, kan dit uberhaupt of doe ik iets verkeerd?

        Bedankt voor je reaktie.

        Groet

        Snotolf

        • Het heeft er mee te maken dat je de GET waardes niet mee rewrite:

          RewriteRule (.*)\.html$ index.php?pagina=$1

          Je neemt alleen het stuk voor de .html om die achter de pagina= te zetten. En dan ben je de GET parameters kwijt.

  • Snotolf

    Hallo André,

    Ik heb het inmiddels werkend bedankt voor de moeite.
    Blijf nog met 1 vraag zitten:
    Is het mogelijk om de url zo aan te passen dat deze zonder de get-variabelen wordt getoond, terwijl deze wel worden doorgegeven aan het script.

    Snotolf

    • Nee, dan zou je een redirect naar een schone URL moeten doen 😉

  • Coenraad Touts

    Hallo Andre,
    Erg goed artikel! Ik ben bezig met een mobiele variant voor een site, maar ik maak niet de hele site mobiel beschikbaar, enkel alles binnen de map /blog en enkele andere pages.
    Nu heb ik het volgende:

    RewriteEngine on
    RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]
    RewriteCond %{REQUEST_URI} ^/blog/ [NC]
    RewriteRule .* http://m.mijndomein.nl/?$1 [L]

    RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]
    RewriteRule ^/bastand.php http://m.mijndomein.nl/bestand.php [L]
    RewriteRule ^/bastand2.php http://m.mijndomein.nl/bestand2.php [L]

    En aan het eind komen nog enkele links. Het tweede deel met de individuele links gaat echter niet goed. De rewriteCond op de map werkt wel goed. Wat doe ik verkeerd?

    • Wat gaat er niet goed? Volgt er geen redirect? Wellicht kun je het wat verduidelijken op de mail.

  • Hoi André,
    op mijn website kan een gebruiker inloggen om naar zijn backups te gaan. Deze backup faciliteit staat bij een andere site waarook naar doorgelinkt wordt.
    Dit doe ik nu doormiddel van een Cname aan te maken. voorbeeld kees.mijnsite.nl wordt doorgestuurd naar kees.externesite.nl en de URL blijft gelijk. Op de externe server kan ik zo instellen dat kees op zijn eigen stukje backups terecht komt.
    so far so good. Nu heeft mijn hostingprovider echter een maximaal aantal cname records ingesteld waardoor ik nu geen nieuwe forwarders kan maken.
    Kan ik dit oplossen met .htaccess

    groeten,
    Frans

    • Wat je zou kunnen doen is een wildcard DNS entry aanmaken, dat scheelt het aanmaken van cnames, en vervolgens met deze regels redirecten:

      RewriteCond %{HTTP_HOST} ^kees\.voorbeeld\.nl [NC]
      RewriteRule ^(.*)$ http://kees\.extern\.nl/$1 [L,R=301]

      Code even uit mijn hoofd en niet getest 😉

      • Hoi André,

        dank je voor je response. Ik ben vergeten te melden dat Hosting2Go (mijn provider) ook het gebruik van wildcards niet toestaat. Want dan was het inderdaad een eenvoudige optie.

        Groeten,
        Frans

        • Dan heb je een probleem. Je zou kunnen overwegen om je domeinen bij een andere partij onder te brengen die het wel toestaat.

  • Marco

    Hoi André,

    Kan je mij helpen met het volgende?
    Zodra de url met /dir/ eindigd, dan doorlinken naar domein.com.
    Maar zodra er dieper in de site genavigeerd wordt dan blijft /dir/ in de url staan.

    bv

    domein.com/dir/ wordt domein.com/
    maar
    domein.com/dir/dir2/ blijft domein.com/dir/dir2/

    Hoe kan ik dat in .htaccess voor elkaar krijgen.
    Wat ik ook probeer /dir/ wordt er steeds tussen uit gehaald met
    Redirect 301 /nl/ domein.com/

    Ik hoop dat ik het een beetje duidelijk heb uitgelegd...

  • Dank je André, dat vermoeden had ik al.
    Jammer........

  • Hallo André, ik hoop dat je me met de volgende redirect kan helpen, ik krijg het antwoord niet met Google boven tafel.

    Ik heb een blog op mijn site gehad die er nu dus af is. Google heeft echter iedere mogelijke link uit het datum archief geïndexeerd zoals:
    - weblog/pivot/user.php?month=11&year=1901&w=my_weblog
    - weblog/pivot/user.php?month=1&year=1870&w=my_weblog
    - weblog/pivot/entry.php?month=3&year=1975&id=13

    Kortom, duizenden url's die nu allemaal een 404 error opleveren. Ik wil nu gewoon alles wat na de domeinnaam komt en begint met 'weblog' 301 redirecten naar de home page http://www.cornelissen.nu. Hoe kan ik dat doen?

    Dank je wel!
    JP

    • Dat zou je in de .htaccess met een eenvoudige regel kunnen doen:

      RewriteRule weblog/(.*) / [NC,R=301,L]

      • Dag André, dank voor je reactie! De rewrite gaat niet helemaal goed. Als ik hem aan .htaccess toevoeg, en daarna deze url intyp:

        http://www.cornelissen.nu/weblog/pivot/entry.php?month=3&year=1975&id=13

        Krijg ik uiteindelijk:

        http://www.cornelissen.nu/?month=3&year=1975&id=13

        In feite verdwijnt alles behalve de parameters.

        Ook is er nog een probleem waar ik het toevoeg. .htaccess bevat al een aantal RewriteRules voor WordPress. Bovenstaande gebeurt alleen als ik jouw rewrite aan het begin van .htaccess zet. Er gebeurd helemaal niets als ik hem na of tussen de WordPress rewrite zet. Als ik het ervoor zet vraag ik me af of dan de WordPress rewrites wel goed blijven werken.

        • Dat de regel voor het WordPress gedeelte komt kan geen kwaad 😉
          Plaats een ? achter de 2de / om te voorkomen dat de parameters meegenomen worden.

        • TOP André, nu werkt het.
          Dank je wel voor je hulp!
          JP

  • Hoi André,

    Ik hoop dat je mij kunt verder helpen met het volgende probleem.
    Ik heb de volgende regel in mijn htacces bestand staan:

    RewriteRule ^nieuws /nl/nieuws.php [NC,L] # Handle requests for "Nieuws"
    RewriteRule ^nieuwsbrief/versies/([A-Za-z0-9-]+)?$/nl/index.php /nieuwsbrief/versies/$1/nl/index.php [NC,L] # Handle requests for "Nieuwsbrief NL"

    Wanneer ik de nieuwsbrief pagina aanroep wordt ik doorgestuurd naar de nieuwspagina.

    Ik heb het vermoeden dat ik iets vergeet toe te voegen maar heb alleen geen idee wat dan precies. Ik hoop dat je mij daarmee verder kunt helpen.

    • Hugo, ik zie niet zo goed wat die 2de regel moet doen want die doet een rewrite naar zichzelf? En je gebruikt daar in het midden een $ wat ook niet kan.

      Dat je een rewrite krijgt naar de nieuws pagina als je naar de nieuwsbrief gaat komt doordat "^nieuws" in regel 1 daar ook mee matched. Dat zou je dan moeten veranderen in bijvoorbeeld "^nieuws/" oid.

      • Hoi André,

        dank je wel voor je snelle reactie. Ik ga er mee aan de slag!

        Groeten Hugo

  • thomas geheim

    welke regels zijn nou eigenleik per se nodig voor een errorpagina want ik snap het nog steeds niet

    • Ik snap ook niet zo goed wat je bedoeld? Je zoekt een paar regels waarmee je een error pagina kunt aanmaken?

  • Jan de Veen

    Hallo Andre

    Ik zit met het volgende op een apache server
    Via httpd-vhosts maak ik gebruik van een aantal domeinen.
    Hierin staan de domeinen met en zonder .www.
    Indien er een sub-domein wordt ingegevens bv klanten.mijnsitenaam.nl kom ik op de eerste domein uit de vhosts uit.
    Nu wil ik met de .htaccess alle sub-domeinen doorsturen naar het hoofd-domein.
    (Hier aangekomen kan ik met behulp van php bepalen waarvoor de gebruiker komt)
    Hoe stel ik de redirect in in de .htaccess

    Alvast bedankt

    • Wil je echte een redirect? Want hoe weet je dan nog vanuit welk subdomein er geredirect is?

      In feite kun je de redirect onder het kopje "Eén hostnaam voor je site" gebruiken. Die redirect alle subdomeinen naar je hoofddomein.

  • jellevanderschoot

    Cool dat je nog blijft reageren op een tutorial van 5 jaar oud, leuk! Fijn dat de codes niet zijn veranderd, haha :-). Ik eb wel een vraagje, ik kom er niet helemaal uit.

    Ik ben een absolute beginner wat betreft htaccess, maar kan m'n weg wel vinden in PHP/MYSQL. Ik wil dat er pagina's worden aangemaakt na een formulier, het formulier is het begin van een artikel. De inhoud word in een database gezet, maar er moet ook een 'pagina' aangemaakt worden met de inhoud. Ik heb geen idee hoe je dit voor elkaar krijgt.. Zou je me op weg kunnen helpen?

    • Lastig om dat zo even te doen, ook omdat ik niet helemaal begrijp wat je nou precies wil.

      • jellevanderschoot

        Ben inmiddels een stuk verder, ook duidelijker nu (haha...). Ik heb een artikel met url: artikel.php?id=9. Dit wil ik omzetten naar: categorienaam/id-artikelnaam. Ik heb al veel geprobeerd, maar er is niets dat ook maar iets verandert.. Enig idee?

        • Onder het kopje "Basic redirects" staat de redirect die je nodig hebt, die moet je in je .htaccess bestand plaatsen. Lukt dat wel? En krijg je dan een redirect?

        • jellevanderschoot

          Ik zie niet helemaal welke je bedoelt.. Zou je hem hier kunnen plakken?

  • Vincent K

    Beste Andre,

    ik wil voor meerdere pagina's een 301 maken. Heb het nu zo gedaan maar alleen de bovenste werkt vreemd genoeg. Wat doe ik verkeerd? Het tussen de verschillende redirects telekens een lege regel. Vincent

    Redirect 301 /DTF_cursus.html http://www.viaperspectief.nl/DTF_EBP_cursus.html

    Redirect 301 /Vincent%20Kortleve.html http://www.viaperspectief.nl/Vincent_Kortleve.html

    Redirect 301 /Loopbaanbegeleiding%20fysiotherapeut.html http://www.viaperspectief.nl/producten_en_cursussen_fysiotherapeut.html

    Redirect 301 /Actuele%20informatie%20loopbaanplanning%20fysiotherapeuten.html http://www.viaperspectief.nl/informatie_coaching_fysiotherapeuten.html

    Redirect 301 /Producten%20Loopbaanbegeleiding.html http://www.viaperspectief.nl/Loopbaanbegeleiding_fysiotherapeuten.html

  • John078

    Hallo,
    Ik ben al een paar dagen aan het zoeken, ik hoop dat jij wellicht een antwoord hebt..

    Ik wil met .htacces bezoekers van mijn site wel of niet toegang verlenen, alleen Nederlanders en Belgen mogen mijn site bezoeken.
    Dat kan ik met onderstaande doen, maar dan zou ik een lange lijst met ip adressen in moeten vullen bij allow from.

    order allow,deny
    deny from all

    Ik neem aan dat hier een handiger oplossing voor is...

    John

    • Hallo John, dit zou je kunnen doen door te detecteren op de ingestelde taal bijvoorbeeld. Alleen hebben veel Nederlanders hun PC op Engels staan, dus helemaal precies is het niet.
      De enige andere methode die ik ken is via een extern bedrijf een check doen of een IP uit NL of BE komt, die externe bedrijven houden daar lijsten van bij. Handmatig zelf doen in de htaccess is niet te doen.

  • Michel

    Beste Andre,

    Ik hoop dat jij me kunt helpen in het woud van 301 redirects. Ik heb op verschillende manieren geprobeerd de volgende url:

    http://mediatest.nl/nieuws/191/nieuw-verschenen-media-september-2012.html
    te verwijzen naar:
    http://www.mediatest.nl/blog

    Ik heb het nu zo in het htaccess file staan

    Redirect 301 /nieuws/191/nieuw-verschenen-media-september-2012.html http://www.mediatest.nl/blog

    Maar dan verschijnt er op voor mij onverklaarbare reden de volgende url in beeld

    http://www.mediatest.nl/blog191/nieuw-verschenen-media-september-2012.html

    Ik snap niet hoe hij er zelf blog191 etc achter zet en hoe ik er voor kan zorgen dat dit niet gebeurd. Heb dingen geprobeerd met RewriteUrl maar krijg het niet voor elkaar.

    Heb jij enig idee?

    Alvast bedankt.

    Met vr gr, Michel

    • Zet in de redirect regel eens een vraagteken achter /blog, dus zo: /blog?

      • Michel

        Helaas, hij blijft er automatisch dit achter zetten:

        blog191/nieuw-verschenen-media-september-2012.html

        • C

          He Michel, misschien allang opgelost, maar probeer eens om er /blog/ van te maken. Dan zou ea wel moeten werken

  • Robustiano

    Kan je via htaccess ook ip adressen uit een bepaald land blokeren.

    Ik verneem graag hoe je dit moet doen

    Theo

    • Dat zou wel kunnen, alleen moet je dan wel een heel uitgebreide lijst hebben van landen en IP nummers. En die lijst moet dan ook continu up-to-date gehouden worden.

      • Robustiano

        Zijn er ook andere manieren om ip adressen van bijv belgie te blokkeren

  • MXdar

    Ik heb mijn website beveiligd middels een login pagina. Alleen na inloggen zien ze een linkje naar een PDF bestand. Echter wanneer iemand niet inlogd is maar wel de url van het PDF bestandje weet en intypt kan deze de beveiliging omzeilen en het bestand openen of downloaden. Dit is natuurlijk absoluut niet de bedoeling. Kan ik dit met htaccess voorkomen?

    • Dan zul je die beveiliging ook op de PDF bestanden moeten zetten. Dit kunt je niet met de htaccess regelen.

  • Richard

    Een interessante pagina André!
    Maar ook ik heb een vraagje 🙂 Ik heb deze regel: Redirect 301 /bedrijfs-tips.html http://www.domein.nl/tips-bedrijf
    Maar die leidt naar http://www.domein.nl/tips-organisatie?pid1=bedrijfs-tips.html
    Dat stuk van "?pid1=bedrijfs-tips.html" wil ik eruit hebben, maar hoe voorkom ik dat? Waarom word ik niet doorgestuurd naar tips-bedrijf, zoals ik in de htaccess heb ingesteld?

    • Je zou een vraagteken achter de 2de URL kunnen zetten, dan zou de querystring er niet meer achter moeten komen.

      • Richard

        Bedankt voor de tip, maar helaas werkte dat ook niet. Ik heb het weten op te lossen met een RewriteRule:

        RewriteEngine on
        RewriteRule ^bedrijfs-tips.html$ /tips-bedrijf? [L,R=301]

  • trevor

    Ik zoek zo soort code op er voor te zorgen dat de website voor niemand toegankelijk is maar alleen als iemand op een button klikt op een andere website,

    Bijvoorbeeld ik ben op website A en klik daar op een link of button en word dan door gelinkt naar website B.

    en als iemand anders de linkt van website B kopieer en plakt in hun browser dat ze er dan niet op kunnen komen.

    ik ben al lang bezig met uitzoeken hoe ik dit voor elkaar kan krijgen, en heb alles al geprobeerd behalve via het .htaccess bestand, en hoorde van iemand dat het via dat bestand met een code mogelijk zou moeten zijn

    • Je moet dan een regel maken op basis van de referrer. Even uit mijn hoofd en ongetest:

      RewriteCond %{HTTP_REFERER} !site.nl [NC]
      RewriteRule ^(.*)$ http://www.google.nl [L,R=302]

      Waarbij site.nl de site is waarvan wel bezoek mag komen.

      • trevor

        het werkt maar alleen de homepage, ik wil dat de gehele site zichtbaar is, is daar ook een manier voor

  • Vero

    André,

    Ik heb ook een probleem. Ik heb alles, wat op internet gevonden, uitgeprobeerd, maar zonder resultaat.
    Mijn joomla site en webwinkel is in een map geïnstalleerd, dus http://www.mijndomein.com/map/
    Home pagina is via twee url's te bereiken:
    1. "www.mijndomein.com/map/" en
    2. "www.mijndomein.com/map/index.php"
    Dus, in de eerste url "/index.php" verwizing naar "/" werkt, als ik goed begrijp.
    Maar waarom mijn home pagina is toch via 2 url bereikbaar?

    Voorbaat bedankt, Vero

    • Vero, dat is standaard gedrag van een webserver. Als je index.php weg laat wordt achter de schermen bij de url /map/ toch index.php opgevraagd, al zie je dat niet terug in de URL.

  • Joachiem Vissel

    Beste Arnold,

    dank voor je tips!

    Toch kom ik er niet uit. Ik gebruik concrete5, dat ik in een submap heb geplaatst. Ik heb een wrewrite rul naar die map (gevonden op een site) en wil dan dat die submapnaam niet te zien is in de URl:

    Ik heb de volgende code gekregen:

    RewriteEngine On

    RewriteCond %{REQUEST_URI} ^/conc/ [NC]

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule ^(.*)$ /conc/$1 [L]

    RewriteRule ^(/)?$ /conc/index.php [L]

    Toch blijft het staan, heb je een tip?

    Bij voorbaat dank,

    met vriendelijke groet,

    Joachiem