hoe 301 redirect van alleen .php pages in .htaccess

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • rokas
  • Registratie: Februari 2007
  • Niet online
Situatie:
goed werkende website (apache)
heb vanwege pretty url's in .htaccess alle request in een bepaalde map gerewrite naar de (werkelijk aanweizge) .php file met onderstaande regel:

code:
1
RewriteRule ^([a-z0-9-]+)$ $1.php [NC,L]


Dit werkt goed, maar heel af en toe maak ik een fout in een webpage en maak ik een link naar een .php file.

Dus dan staat er bijv. <a href="warmtewisselaar.php">warmtewisselaar</a> terwijl er <a href="warmtewisselaar">warmtewisselaar</a> had moeten staan.

Op zich is dat gemakkelijk te herstellen, maar op het moment dat ik deze fout ontdek hebben zoekmachines die verkeerde link (met .php) al opgepakt en in hun index gezet (en ik wil alleen maar pretty url's).

Ik wil er voor zorgen dat alle verzoeken naar een webpage eindigend op .php geredirect wordt naar een versie zonder .php én dat er een 301 error wordt gestuurd waardoor de zoekmachines weten, die pagina is permanent verplaatst.
Ik heb onder ander geprobeerd (in dit geval voor één specifieke webpage):

code:
1
2
RedirectMatch 301 ^/bepaaldemap/warmtewisselaar.php$ https://example.com/bepaaldemap/warmtewisselaar [L]
RewriteRule ^([a-z0-9-]+)$ $1.php [NC,L]


Maar dan krijg ik een 500 internal server error.
Is hier een oplossing voor?

Alle reacties


Acties:
  • 0 Henk 'm!

  • mrmrmr
  • Registratie: April 2007
  • Niet online
Ik zou die fouten er vooraf uit halen met een script. Bijvoorbeeld in de cms. On the fly repareren is complex en foutgevoelig.

Als je het toch wil doen zou ik debuggen met trace logging, bv.
LogLevel warn rewrite:trace3
in de apache conf.

Acties:
  • 0 Henk 'm!

  • rokas
  • Registratie: Februari 2007
  • Niet online
@mrmrmr HIer geen CMS, Ik schrijf webpagina's met de hand in vscode, dus gewoon tekst typen en daarin ook html/css kloppen. Heerlijk vindt ik dat.

Ik maak gebruik van een webhoster. Ik kan dus niet bij apache conf.

Ik maak me geen zorgen over complexiteit van .htaccess die zien er soms al "interessant" uit.

Alleen nu nog op zoek naar een stukje .htaccees code om een GET op een .php pagina een 301 error redirect te geven.