Установите флаг QSA , чтобы запрошенный запрос автоматически добавлялся к URL-адресу в замещающем URL:
RewriteRule ^news/(.*)/(.*)/(.*)/(.*)/$ /news.php?$1=$2&$3=$4 [QSA]
RewriteRule ^news/(.*)/(.*)/$ /news.php?$1=$2 [QSA]
RewriteRule ^news/$ /news.php [QSA]
Кроме того, вы не должны использовать .*
, если можете быть более конкретным. В этом случае использование [^/]+
позволяет избежать ненужного возврата:
RewriteRule ^news/([^/]+)/([^/]+)/([^/]+)/([^/]+)/$ /news.php?$1=$2&$3=$4 [QSA]
RewriteRule ^news/([^/]+)/([^/]+)/$ /news.php?$1=$2 [QSA]
RewriteRule ^news/$ /news.php [QSA]
А общее решение для произвольного числа или параметров см. В Перезапись произвольного числа сегментов пути в параметры запроса .