Come gestire un errore htacces rewriteCond

Questo errore si verifica nei file .htaccess di Apache e indica un problema con la direttiva RewriteCond.

RewriteCond %{REQUEST_FILENAME} -f [NC]  # ERRATO!
 

Questo genera un errore:

[rewrite:warn] [pid 1304735:tid 140294116841024] AH00665:
RewriteCond: NoCase option for non-regex pattern '-f' is not supported and will be ignored

Perché non funziona?

-

L'errore ricevuto è causato dalla presenza dell'opzione `[NC]` (NoCase) accanto al controllo `-f` nella direttiva `RewriteCond`.
L'opzione `[NC]` è usata per rendere il pattern insensibile alla maiuscole/minuscole, ma in questo caso non è necessaria e non è supportata per i **controlli file** (`-f`, `-d`, etc.), dato che questi non fanno distinzione tra maiuscole e minuscole.

### Soluzione
Rimuovi l'opzione `[NC]` dalle direttive `RewriteCond` che usano `-f`, lasciando solo `[L]` nella direttiva `RewriteRule`. Ecco il tuo codice corretto:```apache

 

RewriteEngine On
RewriteBase /

ErrorDocument 404 /error/404

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [L]

RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^ %{REQUEST_URI}.html [L]


### Spiegazione:

- Le linee con `RewriteCond %{REQUEST_FILENAME}.php -f` e `RewriteCond %{REQUEST_FILENAME}.html -f` ora controllano semplicemente se il file esiste, senza la direttiva `[NC]`, eliminando l'errore di avviso.

Con queste modifiche, l'errore che riscontri nei log non dovrebbe più comparire.




Lascia un commento