Vous devrez peut-être définir une base de réécriture.
Cependant, je soupçonne que le problème est le manque d'un/avant index.php dans tous les cas, à savoir
RewriteEngine on
RewriteRule ^home /index.php
En tant que point de côté, avez-vous pensé combiner vos directives en une seule directive comme:
RewriteRule ^(home|contactus|course_registration|ncplhpage|scplhpage|corporatetra)$ /index.php?file=c-$1
? Vous pouvez prendre un peu plus loin et remettre sur la vérification du nom dans votre fichier index.php lui-même, à savoir
RewriteRule ^([_a-z]+)$ /index.php?file=c-$1
Gardez à l'esprit que votre index.php devrait vérifier que le $ _GET [ « fichier » ] qui est demandé est valide. Tout simplement parce que vous avez des URL publiques comme/contactus ne signifie pas que quelqu'un ne peut toujours pas taper /index.php?file=c-contactus directement (essayez-le!). Cela signifie qu'ils peuvent donc entrer /index.php?file=c-../../../../etc/passwd par exemple. Donc, assurez-vous que votre index.php fait aussi une vérification de la santé. Ce sera bon à la fois pour la sécurité, mais aussi pour éviter d'encoder vos URL dans votre fichier .htaccess.
Qu'avez-vous essayé exactement? – Gumbo