[.htaccess] root permanent naar map laten verwijzen

Pagina: 1
Acties:
  • 312 views sinds 30-01-2008
  • Reageer

  • guillaume
  • Registratie: Januari 2001
  • Laatst online: 10-02 18:16
Dit moet een simpel probleem zijn, maar ik kom er niet uit.

Ik heb een subdomein files.mijndomein.nl. Ik wil een directory listing hebben (.htaccess: Options +Indexes), maar dit wordt in de root niet geaccepteerd vanwege veiligheidsissues (omdat .htaccess recursive werkt).

Daarom heb ik een mapje files.mijndomein.nl/files gemaakt en hier de .htaccess in geplaatst.

Alles wat ik nu wil bereiken is de volgende automatische redirects/rewrites:
files.mijndomein.nl naar files.mijndomein.nl/files
files.mijndomein.nl/bestand.ext naar files.mijndomein.nl/files/bestand.ext

Ik heb geprobeerd:
[in de root httpdocs]
Redirect / /files/

RewriteEngine On
RewriteRule ^/(.*) /files$1 [R]


[in /subdomains/files/]
RewriteEngine On
RewriteRule ^/httpdocs(.*) /httpdocs/files$1 [R]

plus heel wat varianten. Resultaten zijn ofwel Internal Server Error ofwel de Fedora/Apache testpagina.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Waar hoort mijn topic?

Dit heeft niks met programmeren te maken. :) PRG>>WSS

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • guillaume
  • Registratie: Januari 2001
  • Laatst online: 10-02 18:16
offtopic:
Heb 'm alleen maar geplaatst waar ik de htaccess topics die me bijna hielpen ook stonden. Maar inderdaad, hij hoort hier, mijn excuses.

[ Voor 27% gewijzigd door guillaume op 08-09-2006 15:39 ]


  • Polster
  • Registratie: Oktober 2004
  • Laatst online: 15:24
Je eerste wens zou er zo uit moeten zien denk ik:

code:
1
2
3
4
5
6
7
RewriteEngine On
Options +FollowSymlinks
RewriteBase / 

RewriteCond %{HTTP_HOST} files.mijndomein\.?nl [NC]
RewriteCond %{REQUEST_URI} !/files/
RewriteRule ^(.*)$ files/$1 [L]

of
code:
1
2
3
4
5
6
7
RewriteEngine On
Options +FollowSymlinks
RewriteBase / 

RewriteCond %{HTTP_HOST} files\.?mijndomein\.?nl [NC]
RewriteCond %{REQUEST_URI} !/files.mijndomein.nl/files/
RewriteRule ^(.*)$ files.mijndomein.nl/files/$1 [L]

Edit:

Bij je tweede zou je dit kunnen proberen:

code:
1
2
3
4
5
6
7
RewriteEngine On
Options +FollowSymlinks
RewriteBase / 

RewriteCond %{HTTP_HOST} files\.?mijndomein\.?nl/bestand\.?ext [NC]
RewriteCond %{REQUEST_URI} !/files.mijndomein.nl/files/bestand.ext/
RewriteRule ^(.*)$ files.mijndomein.nl/files/bestand.ext/$1 [L]


Bij deze weet ik niet zeker of het klopt.

[ Voor 57% gewijzigd door Polster op 08-09-2006 15:52 ]


  • guillaume
  • Registratie: Januari 2001
  • Laatst online: 10-02 18:16
Mijn dank is groot, het werkt helemaal zo :)

Om er nog iets van te leren: m.b.v. de Apache handleiding kan ik 't volgen, op ^(.*)$ na, en waarom het vraagteken na elke \. staat in de eerste conditie. Waarom dit precies?

De tweede vraag wordt al opgelost met je eerste oplossing: files.mijndomein.nl/bestand.ext wordt al hergeschreven naar files.mijndomein.nl/files/bestand.ext :)

Hier blijkt dus geen extra rewrite-rule voor nodig te zijn.

[ Voor 35% gewijzigd door guillaume op 08-09-2006 16:00 ]


  • Polster
  • Registratie: Oktober 2004
  • Laatst online: 15:24
Begrijpen doe ik het zelf niet, heb totaal geen verstand hiervan. Maar ik liep enkele weken terug tegen een vergelijkbaar probleem aan (zie mijn topic hier) en heb toen uiteindelijk een voorbeeld script gevonden. Met dit voorbeeld script heb ik de bovenstaande code geschreven.

In mijn oude topic dragen een paar gebruikers ook nog .asp en .php oplossingen aan.

  • guillaume
  • Registratie: Januari 2001
  • Laatst online: 10-02 18:16
Ik gebruik naar tevredenheid al een tijd de volgende code, omdat het onmogelijk is om de root als directory listing te weergeven:
code:
1
2
3
4
5
6
7
RewriteEngine On
Options +FollowSymlinks
RewriteBase /
 
RewriteCond %{HTTP_HOST} files\.?domein\.?nl [NC]
RewriteCond %{REQUEST_URI} !/files/
RewriteRule ^(.*)$ files/$1 [L]

Hierbij wordt de gebruiker bij intikken van http://files.domein.nl/bestand omgeleid naar http://files.domein.nl/files/bestand en wordt het mogelijk om een directory listing weer te geven.

Nu wil ik graag nog een submap /private hebben, die d.m.v. .htaccess beveiligd is met een wachtwoord. Dit is met Plesk niet mogelijk, omdat het een subdomein betreft. Ik kwam hier de regel
code:
1
AuthUser guillaume 114blabla43454md541d3hashf37d3da87d1e md5
tegen, wat me het handigst lijkt (geen aparte file voor passwords), maar die regel in .htaccess zorgt voor een Internal Server Error (vreemd genoeg kan ik 't gebruik van AuthUser ook nergens anders op 't net vinden, louter het gebruik van AutUserFile).

Dus zal het moeten met een AuthUserFile, maar 1) omdat het een subdomein betreft en ik het pad niet precies weet (moet dit nu vanuit het subdomein gezien worden of vanuit de domein.nl root?) en 2) omdat de RewriteEngine mogelijk ook het pad naar de AuthUserFile verandert (is dit zo?), lijk ik non-stop in een loop te belanden: er wordt alleen maar naar mijn wachtwoord gevraagd (ik weet overigens niet of 'ie na x keer fout wachtwoord een foutmelding moet geven?).

.htaccess:
code:
1
2
3
4
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /pad/bestand
Require User guillaume

Ik heb mijn hosting-bedrijf gemaild en zij gaven als volledig pad naar het subdomein het volgende op:
/home/httpd/vhosts/domein.nl/subdomains/files/
(waarna de AuthUserFile in zowel /home/httpd/vhosts/domein.nl/subdomains/files/ als /home/httpd/vhosts/domein.nl/subdomains/files/httpdocs heb geprobeerd, zonder succes.

Wie weet wat ik verkeerd doe?

  • Polster
  • Registratie: Oktober 2004
  • Laatst online: 15:24
Als ik je goed begrijp is de oplossing simpel:

Je moet het originele volledige path gebruiken. In het mapje 'files' gooi je een .htacces file en een .htpasswd file. Beide files moeten in dezelfde map zitten.

Probeer deze code eens....of heb je dit ookal geprobeerd?

code:
1
2
3
4
5
6
Options +Indexes
AuthUserFile /home/httpd/vhosts/domein.nl/subdomains/files/.htpasswd
AuthGroupFile /dev/null
AuthName EnterPassword
AuthType Basic
require valid-user


Inhoed van je .htpasswd file moet er ongeveer zo uitzien:

code:
1
guillaume:bHq8PzO2KTxA

  • guillaume
  • Registratie: Januari 2001
  • Laatst online: 10-02 18:16
Hmmz, ik moest de bestanden per sé uploaden via de hoofdaccount die ik heb gekregen van de provider en niet via de user die ik voor het desbetreffende subdomein had aangemaakt. Dus user voor subdomein verwijderd, daarna geupload via Plesks ingebakken file manager, de subdomein user weer aangemaakt en daarna werkte het als een zonnetje. Bedankt voor de hulp!

[ Voor 163% gewijzigd door guillaume op 04-02-2007 18:12 ]

Pagina: 1