1. В вашем правиле $2
всегда будет пустым, поскольку у вас нет соответствующей группы захвата.
2. Ваше правило будет работать только для URL-адресовгде расширение .php добавляется в конец запрошенного URL.Для вашего второго примера URL вам понадобится отдельное правило.
RewriteEngine on
# 1) add .php file extension
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [QSA,L]
# 2) more complex case of adding .php extension
# will work with URLs like
# /overview/something/here => /overview/something.php?flag=here
# /overview/1 => /overview.php?flag=1
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f
RewriteRule ^(.+)/([^/]+)$ $1.php?flag=$2 [QSA,L]
# 3) Another type of URL
# will work with URLs like
# /overview/something/here => /overview.php?flag=something/here
# /overview/1 => /overview.php?flag=1
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f
RewriteRule ^([^/]+)/(.+)$ $1.php?flag=$2 [QSA,L]
Я предоставил правила для 2 подходов:
Правило № 2 будет обрабатывать /overview/something/here
=> /overview/something.php?flag=here
(последний сегмент будет считаться параметром, а все предыдущие сегменты будут обрабатываться как имя файла);
Правило № 3 будет обрабатывать /overview/something/here
=> /overview.php?flag=something/here
(первый сегмент будет обрабатываться как имя файла, а все остальные сегменты будут рассматриваться как параметр);
Перезапись /overview/1
=> /overview.php?flag=1
может обрабатываться обоимиих (№ 2 или № 3).