Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Rewrite directory in Apache

1 view
Skip to first unread message

Paul van der Vlis

unread,
Aug 20, 2009, 10:11:48 AM8/20/09
to
Hallo,

Ik zou graag van een bepaalde directory recursief alles willen
redirecten naar een andere site, zoiets:

www.hallo.nl/aabb/* -> www.hallo2.nl/aabb/*

Maar hoe doe ik dat?

Met vriendelijke groet,
Paul van der Vlis.


--
http://www.vandervlis.nl/

robert

unread,
Aug 20, 2009, 10:22:06 AM8/20/09
to
Paul van der Vlis <pa...@vandervlis.nl>:

> Ik zou graag van een bepaalde directory recursief alles willen
> redirecten naar een andere site, zoiets:
>
> www.hallo.nl/aabb/* -> www.hallo2.nl/aabb/*
>
> Maar hoe doe ik dat?

In de configblock voor 'www.hallo.nl' zet je een rewriterule:
RewriteRule ^aabb(.*) http://www.hallo2.nl/aabb$1 [R=CODE,L]

'CODE' vervang je door 'temp', 'permanent' of 'seeother' om
respectievelijk een HTTP 302, 301 of 303 status te retourneren.

--
robert

Paul van der Vlis

unread,
Aug 20, 2009, 11:00:55 AM8/20/09
to
robert schreef:

Hmm, hij doet het zo in eerste instantie niet.

Moet er misschien een dollar bij, zoiets?
RewriteRule ^aabb(.*)$ http://www.hallo2.nl/aabb$1 [R=CODE,L]
Maar ook daarmee werkt het niet...

Zou dit niet ook matchen op b.v.
http://www.hallo/aabb.html
Terwijl ik alleen de directory aabb wil?

Uiteraard heb ik de rewrite module geladen.

Ik had van die code een "permanent" gemaakt, maar eigenlijk weet ik niet
goed wat het betekend. Zoiets staat er nu:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^aabb(.*) http://wwww.hallo2.nl/aabb$1 [R=permanent,L]
</IfModule>

robert

unread,
Aug 20, 2009, 11:22:34 AM8/20/09
to
Paul van der Vlis <pa...@vandervlis.nl>:
> robert schreef:

>>
>> In de configblock voor 'www.hallo.nl' zet je een rewriterule:
>> RewriteRule ^aabb(.*) http://www.hallo2.nl/aabb$1 [R=CODE,L]
>>
>> 'CODE' vervang je door 'temp', 'permanent' of 'seeother' om
>> respectievelijk een HTTP 302, 301 of 303 status te retourneren.
>
> Hmm, hij doet het zo in eerste instantie niet.
>
> Moet er misschien een dollar bij, zoiets?
> RewriteRule ^aabb(.*)$ http://www.hallo2.nl/aabb$1 [R=CODE,L]
> Maar ook daarmee werkt het niet...

Maakt ook niks uit.

> Zou dit niet ook matchen op b.v.
> http://www.hallo/aabb.html
> Terwijl ik alleen de directory aabb wil?

Dat is inderdaad zo, als dat echt een probleem is moet je er ^aabb/(.*) van
maken (zonder quotes). De reden waarom dat meestal niet gebeurt is om een
nutteloze interne redirect van /aabb naar /aabb/ te voorkomen.

> Ik had van die code een "permanent" gemaakt, maar eigenlijk weet ik niet
> goed wat het betekend.

Dat is het soort redirect. Zie:
http://en.wikipedia.org/wiki/HTTP_301 (permanent)
http://en.wikipedia.org/wiki/HTTP_302 (temp)
http://en.wikipedia.org/wiki/HTTP_303 (seeother)

De keuze is meestal een van 'permanent' of 'temp'.

> Zoiets staat er nu:

In de globale httpd-config of in een .htaccess file? Dat laatste wil
namelijk niet altijd werken.

> <IfModule mod_rewrite.c>
> RewriteEngine On
> RewriteRule ^aabb(.*) http://wwww.hallo2.nl/aabb$1 [R=permanent,L]

Is die 'wwww' een typo of klopt dat?

> </IfModule>

Je kunt met RewriteLog en RewriteLogLevel laten loggen wat er gebeurt, dat
geeft vaak wat meer info over waarom iets niet werkt. En even nagaan in de
errorlog van je Apache dat er niks mis is.

--
robert

Wietse Muizelaar

unread,
Aug 20, 2009, 1:09:39 PM8/20/09
to

Moet dat niet ^/aabb/(.*) zijn?

Het kan ook met een
RedirectMatch permanent ^/aabb/(.*)$ http://www.hall2.nl/aabb/$1

Dan heb je de rewrite-module niet nodig, mocht je die nergens anders
voor gebruiken.

--
Groet,
Wietse

robert

unread,
Aug 20, 2009, 2:48:06 PM8/20/09
to
Wietse Muizelaar <wietse.m...@xs4all.nl>:

> On 2009-08-20, Paul van der Vlis <pa...@vandervlis.nl> wrote:
>>
>> Ik had van die code een "permanent" gemaakt, maar eigenlijk weet ik niet
>> goed wat het betekend. Zoiets staat er nu:
>>
>><IfModule mod_rewrite.c>
>> RewriteEngine On
>> RewriteRule ^aabb(.*) http://wwww.hallo2.nl/aabb$1 [R=permanent,L]
>></IfModule>
>
> Moet dat niet ^/aabb/(.*) zijn?

Als /aabb/ geen bestaande directory meer is op de oude server, en iemand
vraagt /aabb op (in plaats van wat 'ie eigenlijk bedoelde, namelijk
/aabb/), dan krijgt die bezoeker een 404 in plaats van dat 'ie geredirect
wordt naar de nieuwe server.

Mocht de directory nog wel bestaan krijg je een extra redirect (wat op zich
niet echt een drama is :).

> Het kan ook met een
> RedirectMatch permanent ^/aabb/(.*)$ http://www.hall2.nl/aabb/$1
>
> Dan heb je de rewrite-module niet nodig, mocht je die nergens anders
> voor gebruiken.

Dat scheelt inderdaad weer :)

--
robert

Paul van der Vlis

unread,
Aug 27, 2009, 11:11:46 AM8/27/09
to
Wietse Muizelaar schreef:

Ah, fraai. Ik heb er nu 2 regels van gemaakt:

RedirectMatch permanent ^/aabb$ http://www.hallo2.nl/aabb
RedirectMatch permanent ^/aabb/(.*)$ http://www.hallo2.nl/aabb/$1

Voordeel is dat door die eerste regel ook http://www.hallo.nl/aabb goed
werkt (dus zonder slash op het eind).

Paul van der Vlis

unread,
Aug 27, 2009, 11:12:30 AM8/27/09
to
robert schreef:

Typo, het is maar een voorbeeld.

>> </IfModule>
>
> Je kunt met RewriteLog en RewriteLogLevel laten loggen wat er gebeurt, dat
> geeft vaak wat meer info over waarom iets niet werkt. En even nagaan in de
> errorlog van je Apache dat er niks mis is.
>

Met vriendelijke groet,

robert

unread,
Aug 27, 2009, 11:40:54 AM8/27/09
to
Paul van der Vlis <pa...@vandervlis.nl>:

> Ah, fraai. Ik heb er nu 2 regels van gemaakt:
>
> RedirectMatch permanent ^/aabb$ http://www.hallo2.nl/aabb
> RedirectMatch permanent ^/aabb/(.*)$ http://www.hallo2.nl/aabb/$1
>
> Voordeel is dat door die eerste regel ook http://www.hallo.nl/aabb goed
> werkt (dus zonder slash op het eind).

Dan doet dit hetzelfde:
RedirectMatch permanent ^/aabb(.*) http://www.hallo2.nl/aabb$1

--
robert

Paul van der Vlis

unread,
Sep 4, 2009, 10:07:47 AM9/4/09
to
robert schreef:

Nee, want dat reageert ook op b.v. http://www.hallo.nl/aabb2/ of op
http://www.hallo.nl/aabbennogmeer.html

robert

unread,
Sep 5, 2009, 2:58:32 AM9/5/09
to
Paul van der Vlis <pa...@vandervlis.nl>:
> robert schreef:
>> Paul van der Vlis <pa...@vandervlis.nl>:
>>> Ah, fraai. Ik heb er nu 2 regels van gemaakt:
>>>
>>> RedirectMatch permanent ^/aabb$ http://www.hallo2.nl/aabb
>>> RedirectMatch permanent ^/aabb/(.*)$ http://www.hallo2.nl/aabb/$1
>>>
>>> Voordeel is dat door die eerste regel ook http://www.hallo.nl/aabb goed
>>> werkt (dus zonder slash op het eind).
>>
>> Dan doet dit hetzelfde:
>> RedirectMatch permanent ^/aabb(.*) http://www.hallo2.nl/aabb$1
>
> Nee, want dat reageert ook op b.v. http://www.hallo.nl/aabb2/ of op
> http://www.hallo.nl/aabbennogmeer.html

Uh ja, daar heb je gelijk in :)

--
robert

0 new messages