problème .htaccess, impossible de redirect l’URL

J’ai créé un fichier .htaccess, voici le code

 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule rudra/example/restapi/(.*)$ rudra/example/restapi/MyAPI.php?request=$1 [QSA,NC,L]  

Je veux simplement réécrire l’url

 localhost/rudra/example/restapi/asd/asd/asda 

à

  localhost/rudra/example/restapi/MyAPI.php?request=asd/asd/asda 

Je sais que cela fonctionne, j’ai ma réécriture a2enmod est activée et AllowOverride tout sur / var / www / et je crois que Apache lit ce fichier parce que si je fais une erreur ici, il montre erreur 500 erreur de serveur interne et je pense que ma réécriture règle est également juste, mais certains comment il est incapable de réécrire url

dans apache2 / error.log

 [error] [client 127.0.0.1] File does not exist: /var/www/rudra/example/restapi/example 

Est-ce que je fais une erreur ou oublie quelque chose?

Vous ne pouvez pas utiliser le drapeau NC dans une RewriteRule , enlevez-le et vous irez bien. En outre, vous devez définir le RewriteBase sur / comme ceci:

  RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule rudra/example/restapi/(.*)$ rudra/example/restapi/MyAPI.php?request=$1 [QSA,L]  

Assurez-vous également qu’il n’y a pas d’espace entre les crochets []

il y avait l’erreur dans la rewriterule, voici le code final

  RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ rudra/example/restapi/MyAPI.php?request=$1 [QSA,NC,L]  

Je suppose que cette RewriteBase était également manquante.

merci jonan