[Apache] mod_rewrite: zonder trailing slash doorgestuurd

Pagina: 1
Acties:
  • 43 views sinds 30-01-2008

  • Jeeeroen
  • Registratie: Juni 2004
  • Niet online
Hallo,

Ik probeer een aantal van mijn subdomeinen met mod_rewrite van Apache te rewriten naar verschillende mappen. Ik wil dat 'www.website.ext' uitkomt in de submap 'www', 'test.website.ext' uitkomt in de submap 'test', enzovoort. De overige subdomeinen wil ik in de hoofdmap laten uitkomen.

Ik plaats hiervoor in de hoofdmap een .htaccess bestand met de volgende inhoud:
code:
1
2
3
4
5
6
7
8
9
RewriteEngine On

RewriteCond %{HTTP_HOST} ^www.website.ext$|^website.ext$
RewriteCond %{REQUEST_URI} !^/www
RewriteRule ^(.*)$ www/$1 [L]

RewriteCond %{HTTP_HOST} ^test.website.ext$
RewriteCond %{REQUEST_URI} !^/test
RewriteRule ^(.*)$ test/$1 [L]

Alles werkt prima, behalve één toch wel belangrijk puntje. Wanneer ik namelijk in de map 'test' een map 'submap' aanmaak, en ik naar 'http://test.website.ext/submap' surf (zonder trailing slash!), dan word ik automatisch doorgestuurd naar 'http://www.website.ext/test/submap/', ook al bestaat deze map niet. De subdomeinnaam wordt dan dus als submap van het (www-)domein gezien. Ik zou natuurlijk gewoon naar 'http://test.website.ext/submap/' (met trailing slash) doorgestuurd moeten worden.

Zonder mijn rewrites in .htaccess wordt de trailing slash wel goed toegevoegd. 'http://www.website.ext/mapje' wordt dan keurig 'http://www.website.ext/mapje/'.

De server software: Apache/1.3.33. Er is geen beheer paneel zoals cPanel en PLESK geïnstalleerd. Ik heb helaas geen toegang tot httpd.conf.

Hoe kan ik dit (het beste) oplossen? Bedankt.

  • jnr24
  • Registratie: Oktober 2004
  • Laatst online: 27-04 13:13
Mmm ik weet het niet zeker maar misschien kan je iets met RewriteBase ?

  • Jeeeroen
  • Registratie: Juni 2004
  • Niet online
Ik heb het geprobeerd, maar het helpt niets. Toch bedankt.

  • aex351
  • Registratie: Juni 2005
  • Laatst online: 11:29

aex351

I am the one

Dit zou moeten werken

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
RewriteEngine On

RewriteCond %{HTTP_HOST} ^www.website.ext$|^website.ext$
RewriteCond %{REQUEST_URI} !^/www
RewriteRule ^(.*)$ www/$1 [L]

RewriteCond %{HTTP_HOST} ^www.website.ext$|^website.ext$
RewriteCond %{REQUEST_URI} !^/www
RewriteRule ^(.*)/$ www/$1 [L]

RewriteCond %{HTTP_HOST} ^test.website.ext$
RewriteCond %{REQUEST_URI} !^/test
RewriteRule ^(.*)$ test/$1 [L]

RewriteCond %{HTTP_HOST} ^test.website.ext$
RewriteCond %{REQUEST_URI} !^/test
RewriteRule ^(.*)/$ test/$1 [L]


Kortom, zelfde rewriterule alleen met een extra / erachter. Zo doe ik het zelf ook, heb nog geen andere manier gevonden.

[ Voor 11% gewijzigd door aex351 op 27-06-2005 16:00 ]

< dit stukje webruimte is te huur >


  • Jeeeroen
  • Registratie: Juni 2004
  • Niet online
Vreemd, bij mij werkt dit niet. Weet je zeker dat je de code op precies deze manier gebruikt?

  • aex351
  • Registratie: Juni 2005
  • Laatst online: 11:29

aex351

I am the one

Ja zo gebruik ik het, wel iets andere rules enz.

< dit stukje webruimte is te huur >


  • Jeeeroen
  • Registratie: Juni 2004
  • Niet online
Misschien is d'r dan nog iets anders geconfigureerd op mijn server.

  • aex351
  • Registratie: Juni 2005
  • Laatst online: 11:29

aex351

I am the one

Jeeeroen schreef op maandag 27 juni 2005 @ 19:47:
Misschien is d'r dan nog iets anders geconfigureerd op mijn server.
Ik kan je niet helemaal volgen, wat bedoel je hiermee?

< dit stukje webruimte is te huur >


  • Jeeeroen
  • Registratie: Juni 2004
  • Niet online
Sorry dat ik niet helemaal duidelijk was. Misschien zijn er op mijn server bepaalde dingen anders geconfigureerd, waardoor het bij mij alsnog niet werkt met jouw oplossing.

  • aex351
  • Registratie: Juni 2005
  • Laatst online: 11:29

aex351

I am the one

Ik denk het niet, als het zonder die slash werkt dan moet het ook werken met zo denk ik. Het ligt dan dus aan je htaccess bestandje, misschien dat iemand hier op got hier anders over denkt.

< dit stukje webruimte is te huur >


  • Jeeeroen
  • Registratie: Juni 2004
  • Niet online
Ik heb je code rechtstreeks gekopieerd en slechts "website.ext" vervangen door de domeinnaam. Het probleem (zie topic) blijft dan gewoon optreden.

[ Voor 9% gewijzigd door Jeeeroen op 27-06-2005 20:44 ]


  • aex351
  • Registratie: Juni 2005
  • Laatst online: 11:29

aex351

I am the one

ok ik doe nog een poging

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
RewriteEngine On

RewriteCond %{HTTP_HOST} ^www.website.ext$|^website.ext$ [NC]
RewriteRule ^(.*)$ www/$1 [L]

RewriteCond %{HTTP_HOST} ^www.website.ext$|^website.ext$ [NC]
RewriteRule ^(.*)/$ www/$1 [L]

RewriteCond %{HTTP_HOST} ^test.website.ext$ [NC]
RewriteRule ^/([a-z]+)$ /$1 [L]

RewriteCond %{HTTP_HOST} ^test.website.ext$ [NC]
RewriteRule ^/([a-z]+)/$ /$1 [L]


of nu ik toch bezig ben

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
RewriteEngine On

RewriteCond %{HTTP_HOST} ^www.website.ext$|^website.ext$ [NC]
RewriteRule ^(.*)$ www/$1 [L]

RewriteCond %{HTTP_HOST} ^www.website.ext$|^website.ext$ [NC]
RewriteRule ^(.*)/$ www/$1 [L]

RewriteCond %{HTTP_HOST} ^test.website.ext$ [NC]
RewriteRule ^/([a-z]+)$ test.website.ext/$1 [L]

RewriteCond %{HTTP_HOST} ^test.website.ext$ [NC]
RewriteRule ^/([a-z]+)/$ test.website.ext/$1 [L]


ben ook niet echt een topper in mod_rewrite, maar hoop dat het nu lukt

[ Voor 4% gewijzigd door aex351 op 28-06-2005 00:56 ]

< dit stukje webruimte is te huur >


  • Blorgg
  • Registratie: Juni 2001
  • Niet online
Is het dan niet net zo makkelijk om met virtual hosts te werken? Dus dat je http://subdomein.iets.nl laat verwijzen naar /document_root/subdomein

Dat doe ik bij een van mijn domeinen ook voor een bepaalde user zodat ie user.domein.nl en www.domein.nl/user kan gebruiken.

  • Jeeeroen
  • Registratie: Juni 2004
  • Niet online
Helaas aex351, dat werkt ook niet. Die regel RewriteCond %{REQUEST_URI} !^/www is ook op één of andere manier nodig. Ik krijg anders een Internal server error.
Blorgg schreef op dinsdag 28 juni 2005 @ 00:59:
Is het dan niet net zo makkelijk om met virtual hosts te werken?
Kan dat dan, zonder toegang tot httpd.conf?

  • Blorgg
  • Registratie: Juni 2001
  • Niet online
Nee helaas, je zal wel toegang tot httpd.conf moeten hebben.

Denk dat ik ergens iets gemist heb... yup :X

[ Voor 5% gewijzigd door Blorgg op 28-06-2005 10:03 ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 05-05 22:57

Creepy

Tactical Espionage Splatterer

Jeeeroen: je wordt zo wel redelijk aan het handje gehouden. Ik mis in elk geval je eigen inzet nadat je verschillende oplossing van anderen hebt geprobeerd. Het enige dat je meld is "het werkt niet, wat moet ik anders doen?" zonder dat je aangeeft welke zaken je nu al zelf hebt geprobeerd.

Daarnaast is het eigenlijk een installatie/configuratie probleem en die horen in SA. Zie ook P&W FAQ - Installatie c.q. SA vragen.
Echter omdat ik het gevoel heb dt je puur zit te wachten op oplossingen van anderen sluit ik je topic i.p.v. dat ik het verplaats.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.