PDA

Bekijk Volledige Versie : .htaccess-vraagjes...



Tom
08/11/04, 15:35
Hey ho,

'k Zit met twee prangende Apache-vraagjes, waarvan ik vermoed
dat vele mensen hier ze zich al eens gesteld hebben.

Ten eerste: ik heb ergens een wiki geïnstalleerd (DokuWiki, voor
de geïnteresseerden), die bereikbaar is via dokuwiki/doku.php.
Ik zou dus willen dat alle surfenden naar daar omgeleid worden,
want buiten die wiki is er op dat domein niks te zien.

Een schamele poging was dit, in een .htaccess-bestand in de
top-level directory:

RewriteEngine on
RewriteRule ^$ dokuwiki/doku.php
RewriteRule ^index.html$ dokuwiki/doku.php
RewriteRule ^index.php$ dokuwiki/doku.php

Dat lijkt wel te werken, maar iets doet me vermoeden dat het
niet volgens de regels van de kunst verloopt. Die eerste lijn
lijkt me dik OK, die tweede wat minder. Ik had daarvoor eerst
iets als ^(.*).(.*)$, omdat ik graag *alle* initiële aanvragen
naar die wiki-pagina zou omleiden, maar toen werd die wiki
natuurlijk aartslelijk, omdat dan ook *alle* bestanden eronder
te lijden hadden (dus ook pakweg het .css-bestand enzo).

Daarom heb ik dat maar naar de omslachtige lijntjes hierboven
aangepast. Alleen worden nu enkel index.*-aanvragen omgeleid,
al de rest niet meer... Is er een simpele, en vooral elegante
oplossing voor wat ik wil bereiken?

Een tweede vraagje is wachtwoorden. Wiki's zijn vaak voor elke
voorbijganger bewerkbaar, maar dat mag hier even niet. :-) Ook
daarvoor drong zich dus een .htaccess-oplossing op, maar mijn
host lijkt geen htpasswd aan boord te hebben (het programma),
dus de meeste tekstjes die ik daaromtrent aantref, kan ik niet
in de praktijk omzetten. Ik heb hen dan gemaild, en ze stuurden
me een pagina (tools.priorweb.be/protected-pages), waar ik wat
gegevens kan invullen en enkele (maximum vijf...) potentiële
naam/wachtwoord-combinaties. Ik krijg dan een op maat gesneden
..htaccess en .htpasswd, maar als ik die gebruik, en ik geef de
juiste gegevens op, dan komt het inlogvenster steeds weer
tevoorschijn (ik typ de gegevens, druk enter, en wordt opnieuw
om die gegevens gevraagd). Dat doet-ie zowel met Camino als met
Firefox als met Safari. Kent er iemand dat fenomeen? En ook hier
de vraag: is er een simpele manier om het simpele effect dat ik
nodig heb te bereiken?

In de hoop dat iemand een tipje van de sluier kan lichten,
groetjes,
Tom

Stefan Koopmanschap (remove withoutspam to e-mail)
08/11/04, 15:55
Hoi!

Tom wrote:
> lijkt me dik OK, die tweede wat minder. Ik had daarvoor eerst
> iets als ^(.*).(.*)$, omdat ik graag *alle* initiële aanvragen
> naar die wiki-pagina zou omleiden, maar toen werd die wiki
> natuurlijk aartslelijk, omdat dan ook *alle* bestanden eronder
> te lijden hadden (dus ook pakweg het .css-bestand enzo).

Werken met condities zal in dit geval beter gaan:

RewriteCond %{REQUEST_URI} !^/styles/.*
RewriteCond %{REQUEST_URI} !^/images/.*
RewriteRule .* /dokuwiki/doku.php

Met deze condities rewrite ie alles, behalve de inhoud van styles/ en
images/, naar je wiki.

Wat betreft wachtwoordbeveiliging: Kijk eens rond naar nog wat andere
wiki software, want er is wiki software waar je op je systeem bepaalde
rechten kan instellen, bijvoorbeeld dat niet iedereen zo maar teksten
kan wijzigen.

Groetjes,

Stefan

Ronald Klip
08/11/04, 16:05
Tom schreef:
> Hey ho,

Hai ho,

> Ten eerste: ik heb ergens een wiki geïnstalleerd (DokuWiki, voor
> de geïnteresseerden), die bereikbaar is via dokuwiki/doku.php.
> Ik zou dus willen dat alle surfenden naar daar omgeleid worden,
> want buiten die wiki is er op dat domein niks te zien.
>
> RewriteEngine on
> RewriteRule ^$ dokuwiki/doku.php
> RewriteRule ^index.html$ dokuwiki/doku.php
> RewriteRule ^index.php$ dokuwiki/doku.php

Slimmer is om een voorwaarde op te nemen, mbv RewriteCond

RewriteEngine on
RewriteCond %{REQUEST_URI} \.php
RewriteCond %{REQUEST_URI} !dokuwiki/doku.php
RewriteRule .* http://bla.domein.tld/dokuwiki/doku.php [R=301,L]

Dit zou alle aanvragen voor *.php m.u.v. dokuwiki/doku.php permanent
(R=301) moeten redirecten naar dokuwiki/doku.php. (uit de losse pols,
niet getest..)

--
groet, Ronald

Tom
08/11/04, 16:45
Ronald Klip wrote:

>> RewriteEngine on
>> RewriteRule ^$ dokuwiki/doku.php
>> RewriteRule ^index.html$ dokuwiki/doku.php
>> RewriteRule ^index.php$ dokuwiki/doku.php
>
>
> Slimmer is om een voorwaarde op te nemen, mbv RewriteCond
>
> RewriteEngine on
> RewriteCond %{REQUEST_URI} \.php
> RewriteCond %{REQUEST_URI} !dokuwiki/doku.php
> RewriteRule .* http://bla.domein.tld/dokuwiki/doku.php [R=301,L]
>
> Dit zou alle aanvragen voor *.php m.u.v. dokuwiki/doku.php permanent
> (R=301) moeten redirecten naar dokuwiki/doku.php. (uit de losse pols,
> niet getest..)

Dat doet-ie goed, ja. :-) Bedankt!

Groetjes,
Tom

Tom
08/11/04, 16:55
Stefan Koopmanschap (remove withoutspam to e-mail) wrote:

> Werken met condities zal in dit geval beter gaan:
>
> RewriteCond %{REQUEST_URI} !^/styles/.*
> RewriteCond %{REQUEST_URI} !^/images/.*
> RewriteRule .* /dokuwiki/doku.php
>
> Met deze condities rewrite ie alles, behalve de inhoud van styles/ en
> images/, naar je wiki.

Hm... 'k Heb het even geprobeerd met die aanpak (!^/dokuwiki/images/.*),
maar mijn browser meldde me dan dat de redirection limit overschreden
werd... Houd ik het gewoon op !^/dokuwiki/doku.php, dan doet hij het
natuurlijk wél goed, maar ik vond het eigenlijk geen slecht idee om
die mapjes met afbeeldingen e.d. nog wél bereikbaar te laten... :-/

Pas nu stel ik trouwens vast (dat maakt ook de reply op Ronalds antwoord
ongeldig...) dat-ie het *niet* meer doet.

Met dit als .htaccess:

RewriteEngine on
RewriteCond %{REQUEST_URI} !dokuwiki/doku.php
RewriteRule .* /dokuwiki/doku.php [R=301]

....krijg ik een stijl-loze (dus tekst-)versie van de wiki te zien. :-(

'k Had nog een opmerking over die wachtwoordbeveiliging, maar die laat
ik voorlopig maar even voor wat hij is...

Bedankt alleszins!
Tom