Voorbeelden veel gebruikte .htaccess regels
80Een 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.
Een veelgebruikte van mij is
Options +Indexes
en
Options -Indexes
Vergeet ook niet om AllowOverride in de httpd.conf goed te zetten
Like this comment?
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?
Like this comment?
@Website promotie: juist de 301 neemt de PR mee, de 302 niet omdat die voor een tijdelijke redirect staat
Like this comment?
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é!
Like this comment?
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!
Like this comment?
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
Like this comment?
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
Like this comment?
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
Like this comment?
Gebruik dan deze:
RewriteCond %{HTTP_HOST} !^voorbeeld\.nl [NC]
RewriteRule ^(.*)$ http://voorbeeld\.nl/$1 [L,R=301]
Like this comment?
Zeer hard bedankt André,
ik zal binnekort wanneer mijn website klaar is zeker eens een artikeltje over u schrijven!
Like this comment?
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]
Like this comment?
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.
Like this comment?
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?
Like this comment?
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
Like this comment?
Dat kan niet
Like this comment?
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
Like this comment?
Er zijn natuurlijk wel andere manieren waarmee je een .htaccess uit kunt lezen. Minder legale manieren zeg maar.
Like this comment?
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?
Like this comment?
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.
Like this comment?
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
Like this comment?
Ja
Like this comment?
Like this comment?
Nee
Like this comment?
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.
Like this comment?
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.
Like this comment?
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?
Like this comment?
Nou, de reacties zijn overweldigend. Ik laat het hier maar bij. Reageren is niet meer nodig.Besjoer.
Like this comment?
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
Like this comment?
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
Like this comment?
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.
Like this comment?
Wordt niet ondersteund, in iedergeval bedankt.
Like this comment?
hoi andré, ben al de hele middag bezig, maar het lukt me niet om een volgende redirect te maken:
REDIRECT 301 /index.php?voor_wie http://rokenzondersigaret.nl/voor-wie/
dat google of andere mensen met bookmarks dus toch doorgelinkt worden naar de nieuwe structuur.
mis ik iets?
bedankt niels
Like this comment?
KUn je ook redirecten (via rewritecond) op een deel van een domeinnaam?
bvd
Ralph
Like this comment?
@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.
Like this comment?
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
Like this comment?
Dank je André!
Vind dit een mooi en overzichtelijk overzicht!
Bert
Like this comment?
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
Like this comment?
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.
Like this comment?
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!
Like this comment?
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.
Like this comment?
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
Like this comment?
Laat maar zitten, is opgelost, moest natuurlijk gewoon "RewriteRule ^(.*).html$ /index.php?pagina=$1 [L]" zijn.
Alsnog bedankt voor je hulp!
Like this comment?
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
Like this comment?
Veel FTP clients laten dit bestand niet zien, maar als de melding verschijnt dat het gelukt is staat het bestand er wel
Like this comment?
Bedankt voor je antwoord!
Ik kon middels file mask in het ftp-programma het bestandje traceren.
Wat is eigenlijk de reden hiervan?
Like this comment?
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
Like this comment?
@Peter: daar zijn een heleboel tutorials over te vinden, ik zou die eens doornemen
Like this comment?
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!
Like this comment?
@Leon: kijk hier eens naar. Er zijn diverse scripts die een slash aan je URL kunnen toevoegen
Like this comment?
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
Like this comment?
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
Like this comment?
@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.
Like this comment?
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
Like this comment?
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
Like this comment?
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.htmlTyp 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!
Like this comment?
Hallo R.E., probeer het eens zo:
RewriteEngine OnRewriteCond %{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]
Like this comment?
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?
Like this comment?
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
Like this comment?
@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.
Like this comment?
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.
Like this comment?
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
Like this comment?
@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
Like this comment?
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
Like this comment?
Mooie tutorial, is zeker voor beginners heel handig
Like this comment?
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
Like this comment?
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.
Like this comment?
probleem opgelost met een fix van de microsoft site.
de hostfile is hernoemd naar old en google is terug.
groet marc
Like this comment?
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
Like this comment?
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]
Like this comment?
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
Like this comment?
Staan de waardes wel in de URL? Dan kun je met PHP eenvoudigweg de URL uitlezen?
Like this comment?
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
Like this comment?
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.
Like this comment?
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
Like this comment?
Nee, dan zou je een redirect naar een schone URL moeten doen
Like this comment?