В отличие от перезаписей на сервер, можно выполнять перезапись внутри разделов или файлов .htaccess за счет некоторой дополнительной сложности. Этот метод называется перезаписью для каждого каталога.
Основное отличие от перезаписей на сервер состоит в том, что префикс пути к каталогу, содержащему файл .htaccess, равен stripped перед сопоставлением в RewriteRule.
A RewriteBase должен использоваться для обеспечения правильного отображения запроса.
(источник: apache.org - переписать вступительные файлы .htaccess )
Итак, используя структуру каталогов и добавив необходимые RewriteBase
, вы получите следующее, что должно работать:
.htaccess файл в корневой папке (BDsite)
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /BDsite/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^tables/([^/]*)$ tables/table.php?table=$1 [L]
</IfModule>
Структура проекта:
Так что теперь, если вы запросите: localhost/BDsite/tables/energy
,
вас обслужат localhost/BDsite/tables/table.php?table=energy
(проверьте это с помощью var_dump-ing $ _GET в файле table.php)