Добро пожаловать в StackOverFlow, попробуйте это:
RewriteEngine On
RewriteBase /
RewriteRule ^pdf/([a-z0-9\-_\.]+)$ pdf.php?file=$1 [L,NC,QSA]
RewriteCond %{REQUEST_URI} !^/pdf
RewriteRule ^([a-z0-9\-_\.]+)/?$ index.php?page=$1.html [L,NC,QSA]
L: Флаг [L] заставляет mod_rewrite остановить обработку набора правил. В большинстве случаев это означает, что если правило соответствует, дальнейшие правила не будут обрабатываться. Это соответствует последней команде в Perl или команде break в C. Используйте этот флаг, чтобы указать, что текущее правило должно применяться немедленно, без учета дальнейших правил.
QSA: Когда заменяющий URI содержит строку запроса, RewriteRule по умолчанию ведет к удалению существующей строки запроса и замене ее новой сгенерированной. Использование флага [QSA] приводит к объединению строк запроса.
NC: Использование флага [NC] приводит к тому, что RewriteRule сопоставляется без учета регистра. То есть не имеет значения, отображаются ли буквы в верхнем или нижнем регистре в сопоставленном URI.
Кроме того, я бы рекомендовал использовать тире вместо подчеркивания.