Вы не должны быть слишком обеспокоены накладными расходами при использовании файла .htaccess. Это не окажет большого влияния на нагрузку на ваш сервер.
Что касается вашей красивой схемы URL, вы можете смотреть не дальше, чем StackOverflow! Обратите внимание на структуру URL этого вопроса. Похоже:
http://stackoverflow.com/questions/[ID]/[QUESTION]
Идентификатор, как вы, вероятно, догадались, - это уникальный идентификатор, задаваемый каждому вопросу о SO. Вопрос, который следует (ваш эквивалент - имя дерева), является просто фиктивным текстом. Попробуйте изменить что-либо после /4985258/
и повторите попытку. Это все еще отправляет вас к этому вопросу. Это потому, что Mod Rewrite, который использует SO, игнорирует все после идентификатора.
В вашем случае я бы предложил структуру URL, подобную этой:
http://www.comehike.com/outdoors/trees/24/oak-tree
Использование следующего htaccess mod_rewrite:
RewriteEngine On
RewriteRule ^/outdoors/trees/([0-9]+) /outdoors/trees/tree.php?tree_id=$1
Это будет соответствовать любому URL с идентификатором в нем и отправлять его в скрипт tree.php. Вы можете добавить фиктивный текст заголовка ко всем своим ссылкам.
EDIT
Если вы действительно обеспокоены незначительным падением производительности, которое вы получите с помощью файла htaccess, вы всегда можете переместить весь код из ваших файлов htaccess в объявление VirtualHost, а затем объявить AllowOverride None
, чтобы Apache не мог искать файлы htaccess. Обычно вы можете найти свои виртуальные хосты в /etc/apache2/sites-available/default
в Linux или C:\apache\conf\vhosts.conf
в Windows.