url verbergen met htaccess
Ik ben bezig met een website waarvan ik niet wil dat de url's zichtbaar zijn.
Uiteraard wordt alles goed beveiligd (php/sessies/inloggen) etc, maar het zo beter zijn als de urls nooit zichtbaar zijn.
Dus dat bovenaan de adresbalk altijd www.ditisdesite.nl staat.
Ook als je op pagina inloggen.php?f=ivn4vnw40gnv4w8743 zit.
Die rare code is een zelfgeschreven 'salt'-functie die een random string maakt en daaruit een 'random' (tussen haakjes!) haalt en daaruit zijn actie haalt (bijvoorbeeld het 18e teken).
Dat is al een beveiliging op zich, maar toch zou het mooi zijn als in de adresbalk altijd het www.ditisdesite.nl staat.
Dus zonder pagina-vermelding.
Hoe kan ik dat, met htaccess, doen?
GEEN javascript!
Uiteraard wordt alles goed beveiligd (php/sessies/inloggen) etc, maar het zo beter zijn als de urls nooit zichtbaar zijn.
Dus dat bovenaan de adresbalk altijd www.ditisdesite.nl staat.
Ook als je op pagina inloggen.php?f=ivn4vnw40gnv4w8743 zit.
Die rare code is een zelfgeschreven 'salt'-functie die een random string maakt en daaruit een 'random' (tussen haakjes!) haalt en daaruit zijn actie haalt (bijvoorbeeld het 18e teken).
Dat is al een beveiliging op zich, maar toch zou het mooi zijn als in de adresbalk altijd het www.ditisdesite.nl staat.
Dus zonder pagina-vermelding.
Hoe kan ik dat, met htaccess, doen?
GEEN javascript!
Gesponsorde koppelingen:
Dan zou je je site met behulp van frames of volledig in AJAX moeten bouwen waardoor er eenmalig een pagina geladen wordt en de rest van de content binnen die betreffende pagina getoond wordt.
Dit is echter niet aan te raden en wel om de dood eenvoudige reden dat je geen urls meer kunt gebruiken om pagina's direct te bezoeken. Met andere woorden, bezoekers ontneem je de mogelijkheid om specifieke pagina's te bookmarken en bovendien is het voor zoekmachines onmogelijk om deze pagina's te indexeren.
Je zou wel naar het principe mod rewrite kunnen kijken waarmee je je urls er een stuk netter uit kunt laten zien terwijl je op de achtergrond nog steeds de 'lelijke' url gebruikt. Als laatste zou je die code natuurlijk ook als POST variabele mee kunnen geven bij het verzenden van het inlogformulier en daarna direct in een sessievariabele zetten. Dan krijgt de gebruiker hem ook niet direct te zien...
Dit is echter niet aan te raden en wel om de dood eenvoudige reden dat je geen urls meer kunt gebruiken om pagina's direct te bezoeken. Met andere woorden, bezoekers ontneem je de mogelijkheid om specifieke pagina's te bookmarken en bovendien is het voor zoekmachines onmogelijk om deze pagina's te indexeren.
Je zou wel naar het principe mod rewrite kunnen kijken waarmee je je urls er een stuk netter uit kunt laten zien terwijl je op de achtergrond nog steeds de 'lelijke' url gebruikt. Als laatste zou je die code natuurlijk ook als POST variabele mee kunnen geven bij het verzenden van het inlogformulier en daarna direct in een sessievariabele zetten. Dan krijgt de gebruiker hem ook niet direct te zien...
Blanche:
Frame had ik ook al aan gedacht, maar dat is ook niet alles.
AJAX ligt me nog boven de pet (en is ook niet nodig).
De zoekmachines mogen het toch niet gaan doorzoeken en linken naar een aparte pagina mag ook niet (eerst inloggen, maar zonder onthoud-functie).
Dus dat de bestands-url niet zichtbaar is, is geen probleem. Voor de mensen niet, voor de computer niet en voor Google niet.
Een artikel vragen (id) kan wel met POST, maar is onnodig moeilijk.
Er is geen makkelijke regel in htaccess die weergeeft wat er in de adresbalk staat?
mod_rewrite is toch een onderdeel van htaccess?
Frame had ik ook al aan gedacht, maar dat is ook niet alles.
AJAX ligt me nog boven de pet (en is ook niet nodig).
De zoekmachines mogen het toch niet gaan doorzoeken en linken naar een aparte pagina mag ook niet (eerst inloggen, maar zonder onthoud-functie).
Dus dat de bestands-url niet zichtbaar is, is geen probleem. Voor de mensen niet, voor de computer niet en voor Google niet.
Een artikel vragen (id) kan wel met POST, maar is onnodig moeilijk.
Er is geen makkelijke regel in htaccess die weergeeft wat er in de adresbalk staat?
mod_rewrite is toch een onderdeel van htaccess?
@Eddy, laatste regel: mod_rewrite is een onderdeel van Apache, de webserver. Htaccess is ook een onderdeel van Apache, die speciale regels e.d. door geeft. (Error pagina's, RewriteEngine e.d.)
Je zult altijd op een of andere manier de benodigde informatie aan de webserver moeten doorgeven en daar heb je twee methoden voor: GET en POST.
De GET informatie wordt zoals je weet via de url aan de webserver verstrekt en is dus tevens zichtbaar in de adresbalk van iedere browser. POST informatie wordt via een formulier naar de webserver verzonden, en is dus niet direct zichtbaar...
Je geeft zelf al aan dat het gebruik van POST veel te omslachtig is, dus dan zul je op een of andere manier de informatie via de GET methode mee moeten geven. En dan ontkom je er niet aan om de gegevens zichtbaar in de url te zetten, informatie die daar niet zichtbaar is, is dat namelijk ook niet voor de webserver. Het enige dat je kunt doen is dmv mod rewrite de layout veranderen waarmee de informatie in de url staat, maar het zal zeker aanwezig moeten zijn...
De GET informatie wordt zoals je weet via de url aan de webserver verstrekt en is dus tevens zichtbaar in de adresbalk van iedere browser. POST informatie wordt via een formulier naar de webserver verzonden, en is dus niet direct zichtbaar...
Je geeft zelf al aan dat het gebruik van POST veel te omslachtig is, dus dan zul je op een of andere manier de informatie via de GET methode mee moeten geven. En dan ontkom je er niet aan om de gegevens zichtbaar in de url te zetten, informatie die daar niet zichtbaar is, is dat namelijk ook niet voor de webserver. Het enige dat je kunt doen is dmv mod rewrite de layout veranderen waarmee de informatie in de url staat, maar het zal zeker aanwezig moeten zijn...
AJAX is trouwens makkelijk in gebruik met een library, op die manier kun je bestanden aanroepen en laten zien in een div ;) En op die manier staat er niets in de browser... jQuery, prototype...



