Такой вопрос: например, какой-нибудь умник хочет ввести именно путь к файлу (например, не sie/category ,а site/views/category/index.php), могу ли я распознать это и перенаправить его на главную страницу (site/)?
в корневом .htaccess
RewriteEngine on
RewriteRule '^site/views/(.*)(.php)$' /site [R=302,L]
Сразу возникает вопрос: зачем? Что пытаетесь скрыть? Это как-то связано с SEO (хотите избежать дубликатов...)?
Всё можно сделать.
Посредством самого движка (самописного и/или фреймворка).
Посредством веб-сервера. В вашем случае как я понимаю Apache: через .htaccess
Что лучше в вашем случае я не знаю, потому что не знаю:
Если через .htaccess смотрите в сторону:
Нужно будет прописывать для каждой группы маршрута.
Если через движок сайта (PHP-скрипты) — нужно знать как у вас эти маршруты организованы и через что настраиваются.
Вам, как я понимаю важно, чтобы была переадресация вводимой пользователем страницы (URL) на соответствующую страницу (URL)? И только, если такой страницы не существует — веб-сервер должен вернуть 404 код.
Продвижение своими сайтами как стратегия роста и независимости