[htaccess] Hij doet een redirect ipv een rewrite

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 18-03 09:33

_Thanatos_

Ja, en kaal

Topicstarter
Mijn probleem is dat een RewriteRule met mod_rewrite ervoor zorgt dat er een 301-redirect wordt gedaan, waardoor de url in de adresbalk van de browser ook verandert en het een tweede HTTP request naar m'n server oplevert. Hij moet een gewone interne rewrite doen.

Straks ga ik SEO-friendly url's rewriten naar "lelijke" url's die php kan handelen, maar dan moeten die nette url's dus in de adresbalk van de browser blijven staan. Bij een 301 is dat niet het geval en is dus ook niet wenselijk.

Ik draai Apache 2.2 met mod_rewrite en voor de zekerheid mod_proxy. Ik heb het volgende in mijn .htaccess file staan:
code:
1
2
RewriteEngine on
RewriteRule ^website/(AppNaam)(.*) apps/$1$2 [NC,L]

Als ik nu ga naar http://domein.nl/website/AppNaam, doet apache een 301 redirect naar /apps/AppNaam, terwijl ik een interne rewrite verwacht, zeker gezien de [R] flag ontbreekt. Ik wil dat hij intern een rewrite doet en dus de /website url in de browser laat staan.

Voor de zekerheid mod_proxy ook aangezet, maar dat helpt niet (logisch, want is vgs mij voor externe url's). De server is daarmee ondertussen geherstart, dus er is geen caching-probleem.

Hoe krijg ik em nou zover dat ie een interne rewrite doet, ipv een redirect? :?

日本!🎌


Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Zeker weten dat die 301 niet van je script komt ofzo? Mod_rewrite doet zelfs met een redirect standaard een 302.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 18-03 09:33

_Thanatos_

Ja, en kaal

Topicstarter
Nee, er komt echt een 301 redirect uit de rewrite. Er is nml niet eens een script: hij komt bij een platte html file uit. Misschien dat een oudere versie standaard een 302 redirect, maar kennelijk is het dus standaard een 301.

Maar hoe doe je dan een rewrite?

/edit

Ik heb ontdekt dat hij een redirect doet wanneer ik de slash op het einde weglaat. Als ik de slash er wél achter zet, doet ie een mooie rewrite. Maar daarmee is uiteraard het probleem nog niet opgelost.

Ik heb de RewriteRule aangepast:
code:
1
RewriteRule ^website/(AppNaam)(/?)(.*) apps/$1/$3 [NC,L]

Nu wordt ie zonder slash ook netjes rewritten. Ik snap werkelijk waar niet waarom, omdat (.*) ook al die slash zou moeten opvangen. Is dit een "welkom in de wondere wereld van mod_rewrite" of is er een logische verklaring voor?

Anyway, nu is het probleem dat de url zonder slash in de adresbalk blijft staan, en hij dus de css en javascript enzo niet kan vinden. Hij denkt door het ontbreken van de slash dat ze een niveautje hoger liggen... Hoe los ik dat dan op?

Normaal gezien moet hij dan een 301 redirect doen naar precies dezelfde url mét slash, maar dat doet ie nu dus niet meer. Dat is vast heel logisch, maar ik snap het niet :) Hij moet dus in DIT geval wél een redirect doen, maar dan naar website/AppNaam/ en niet naar apps/AppNaam/

/edit 2

Tijdelijk (of permanent?) dus maar dit erbij gezet:
code:
1
RewriteRule ^website/(AppNaam)$ /website/$1/ [NC,L,R=301]

Dat is hoe het hoort te werken als de slash niet meegegeven is. Daarna gaat ie de rewrite regel uitvoeren in het nieuwe request.

[ Voor 76% gewijzigd door _Thanatos_ op 02-09-2009 01:29 ]

日本!🎌


Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Krijg je wel echt een 301 en is het niet je browser die ooit een 301 heeft gecached?

Acties:
  • 0 Henk 'm!

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 18-03 09:33

_Thanatos_

Ja, en kaal

Topicstarter
Nee, echt een 301, en 301's worden niet gecached vziw...

日本!🎌


Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
_Thanatos_ schreef op woensdag 02 september 2009 @ 13:37:
Nee, echt een 301, en 301's worden niet gecached vziw...
Dat zijn 302's. Een 301 mag je prima cachen.

Acties:
  • 0 Henk 'm!

  • Koetjeboe
  • Registratie: Maart 2002
  • Laatst online: 14-07 12:10

Koetjeboe

Boe, zegt de koe

Anders kun je hem voor de zekerheid door iets als http://www.internetofficer.com/seo-tool/redirect-check/ halen bijvoorbeeld.
Pagina: 1