Вот что вы можете использовать (статическая версия):
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(index|blogs|projects|contact|login)/?$ index.php?action=$1 [L,NC]
Как видите, каждая "страница" жестко закодирована в правиле между ()
.
Вы также можете сделать его более «динамичным»:
RewriteRule ^([a-z0-9\-]+)/?$ index.php?action=$1 [L,NC]
При этом автоматически будут использоваться любые буквы (я добавил тире и цифры - например, индекс, контакт или нас) и использовать его как «действие».Таким образом, в вашем скрипте вы можете проверить, не принимается ли один из них (например, кто-то типа: not-a-good-page), а затем вы можете перенаправить на 404. Таким образом, ваш скрипт контролирует логику, а не .htaccess.