Ну, есть несколько способов сделать это.
Широко распространено использование .htaccess, которое вы сказали не хотите использовать. OK.
У вас еще есть несколько вариантов:
- Использование таблицы базы данных для сопоставления всего одного.
- Использование подпрограммы для проверки существующих файлов.
- Использование расширенной XML-карты сайта.
- Использование системы кеширования.
Что ж, все вышеперечисленное можно смешать в вашей реализации, если хотите.
Вы можете найти хорошую статью для этого в отдельном списке.
http://www.alistapart.com/articles/succeed/
На этой статье решение представляет собой смесь:
сначала проверьте, существует ли файл (например, "about-us.php");
если да, включите содержимое файла, иначе
проверьте db для этого запроса (в качестве подсказки у вас может быть поле с именем friendlyURL в ваших основных таблицах содержимого).
если существует, извлеките и отобразите, иначе
показать страницу 404.
В качестве подсказки для этого, имея в виду функцию SEO, я бы порекомендовал вам иметь карту сайта xml. Если страница не найдена, вы можете проверить карту сайта, если не битый URL, например:
http://yourdomain.net/shoes/male/bro
вы можете проверить, если какой-то URL, как:
http://yourdomain.net/shoes/male/brown
и предложите это своим клиентам / посетителям. Вместе с:
http://yourdomain.net/shoes/male/
http://yourdomain.net/shoes/
также ссылка на ваш HTML-файл Sitemap, и если у вас есть функция поиска на вашем сайте, также используйте ее, чтобы отобразить ссылку для перехода пользователя на страницу поиска с этим запросом.
http://yourdomain.net/search?q=shoes+male+bro
ИЛИ
[input type = "text" name = "q" value = "shoe + male + bro"];
И еще один дополнительный технический совет: используйте функцию полнотекстового поиска в вашей БД, если она доступна.
Интересное чтение пришло от Расмуса Лердорфа, создателя PHP: http://lerdorf.com/lca04.pdf (см. Стр. 34, около 404 перенаправлений).