Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[Apache] Vreemd gedrag met rewrite rule

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een honderdtal sites, waar ik dezelfde, systematische rewrite regels gebruik. Dat ziet er als volgt uit:

code:
1
2
RewriteRule dir1/([^./]+)/ /bestand.php?n=$1 [QSA,NC,NE,L]
RewriteRule dir1/([^./]+)/$ bestand.php?n=$1 [QSA,NC,NE,L]


Dit zorgt ervoor dat via "site.nl/dir1/iets/" opgevraagd kan worden. Echter, Apache gaat er vanuit dat wanneer ik site.nl/dir1/site.nl/dir1/site.nl/iets/ invul, ook bestand.php aan moet vragen. Er zit dus een bug in en een onnodige lange url. Momenteel is het niet zo'n ramp, omdat ik middels canonical url de juiste URL bij de zoekmachine aan het bieden ben. Google erkent dit ook als geen fout verder.

Hoe los ik die bug op dat ie uitsluitend alleen naar /dir1/iets/ kijkt en niet /dir1/sitenaam.nl/dir1/iets/ ? Een concurrent kan in theorie een hoop slechte links plaatsen naar pagina's die ongeveer zo'n URL structuur hebben. Dat is niet echt wenselijk.

  • peteroff
  • Registratie: April 2005
  • Niet online
Volgens mij moet je dan de [R] flag toevoegen
code:
1
RewriteRule dir1/([^./]+)/$ bestand.php?n=$1 [QSA,NC,NE,R,L]

  • Wiebeltje
  • Registratie: Maart 2013
  • Laatst online: 18:05
code:
1
RewriteRule ^dir1/([^./]+)/$ bestand.php?n=$1 [QSA,NC,NE,L]


^ markeert het begin van de string. $ het einde. Je hebt overigens maar 1 RewriteRule nodig. Misschien dat er na de ^ nog een slash moet maar dat weet ik niet zeker.

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 00:25

Hero of Time

Moderator LNX

There is only one Legend

Ik heb de topictitel even aangepast, want 'debiel bugje' zegt niets over je werkelijke probleem en het staat ook gewoon niet netjes.

Commandline FTW | Tweakt met mate


Verwijderd

Topicstarter
Wiebeltje schreef op zondag 30 december 2018 @ 10:09:
code:
1
RewriteRule ^dir1/([^./]+)/$ bestand.php?n=$1 [QSA,NC,NE,L]


^ markeert het begin van de string. $ het einde. Je hebt overigens maar 1 RewriteRule nodig. Misschien dat er na de ^ nog een slash moet maar dat weet ik niet zeker.
Yes. ^ lost het probleem op. Dit maakt /dir1/iets/ toegankelijk en geeft een 404 met /dir1/sitenaam.nl/dir1/iets/.
Hero of Time schreef op zondag 30 december 2018 @ 10:56:
Ik heb de topictitel even aangepast, want 'debiel bugje' zegt niets over je werkelijke probleem en het staat ook gewoon niet netjes.
Ik vond het een rare bug. htaccess taal is erg lastig te begrijpen.

[ Voor 25% gewijzigd door Verwijderd op 31-12-2018 01:43 ]