Вы проверили, был ли загружен ваш модуль перезаписи?
Кстати, вы должны проверить это в вашем htaccess:
<IfModule mod_rewrite.c>
// your rewrite stuff here
</IfModule>
Edit:
Может быть, это могло бы помочь. Попробуйте установить флаг PT на ваше первое правило перезаписи
RewriteRule ^(.*)\.htm $1.php [NC,PT]
Это скажет движку сделать второй чистый путь для сгенерированного URL. Потому что по твоему правилу странное поведение.
URL
jobs/1/civil-engineer.html
переписывается как jobs/1/civil-engineer.php
но следующее правило
jobs/([0-9]+)/(.*)/
ожидает URL-адрес типа jobs/1/civil-engineer.php/
Я провел некоторое тестирование, но удаление '/' позволило избежать только определенных ошибок, но поведение по-прежнему было странным. Единственный способ, который я нашел, - добавить флаг PT или изменить правило для
.
RewriteRule jobs/([0-9]+)/(.*)\?php jobs.php?id=$1