Apache mod_rewrite no asigna la expresión al parámetro

Tengo un sitio que usa apache mod_rewrite y ha estado funcionando durante los últimos 6 meses sin ningún error.

Tengo la siguiente regla de reescritura:

 RewriteRule ^products/([az\-]+)/$ /products.php?category=$1 [NC,L] 

Aquí está el código en mi página products.php

 $category = $_GET['category']; if (isset($category)) { // do some processing here } else { header("Location: /500.html"); exit; } 

Un ejemplo de un enlace que coincide con esta regla es /products/lighting-poles/

¿Alguien sabe por qué la reescritura real todavía está ocurriendo pero no mapeando el ([az\-]+) a la category=$1 ?

Información extra

Noté que el archivo .htaccess en el host ha comentado la línea Options +FollowSymLinks así que primero intenté reactivar esto solo para que el sitio devolviera un error apache de pantalla blanca 500 .

Más desde el archivo .htaccess

  #Options +FollowSymLinks RewriteEngine On RewriteBase / # Add a trailing slash to paths without an extension RewriteCond %{REQUEST_METHOD} !POST RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ RewriteRule ^(.*)$ $1/ [L,R=301] # other rules including problem rule here  

Esto suena morbosamente como un problema de vistas múltiples. Multiviews es una cuestión de negociación de contenido donde, si está activada, probará algunas cosas extra diferentes en la interconexión de asignación de archivos URL para intentar encontrar un archivo que se correlacione con una URL. Aquí tiene una URL como /products/blah , pero tiene un archivo llamado products.php , por lo que las vistas múltiples pueden intentar asignar products a /products.php/blah . De este modo, omite por completo la regla de reescritura y no ve el parámetro de category .

Donde están las opciones, intente agregar:

 Options -Multiviews