Многие фреймворки делают это по одному из следующих правил:
RewriteRule ^(.*)$ /index.php?q=$1
RewriteRule ^(.*)$ /index.php
В первом случае вы получите строку запроса в $ _GET ["q"].
Во втором случае вы должны получить строку запроса из $ _REQUEST или что-то еще. (просто сделайте несколько var_dumps, пока не найдете то, что вам нужно).
Затем вы взорветесь ("/") и все готово.
Посмотрите, как это сделать TYPO3 , eZPublish , Drupal .
Вы также должны добавить следующие условия, чтобы сайт мог открывать ваши статические файлы (например, images / css / js / etc). Они говорят apache не делать перезапись, если URL указывает на местоположение, которое фактически соответствует файлу, директой или символической ссылке. (Вы должны сделать это до директивы RewriteRule)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l