Я хочу использовать mod_rewrite для создания симпатичных URL-адресов, но имею одну версию файла .htaccess, которая может использоваться для любого пользователя на сервере.
Пока у меня есть стандартный довольно URL-адрес .htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
В идеале, мне бы хотелось что-то похожее на
RewriteRule ^(.*)$ %{URL of this file directory}/index.php/$1 [L]
Эта документация заставила бы меня поверить, что я не хочу:
Примечание. Сравнение шаблонов в контексте для каждого каталога Никогда не забывайте, что шаблон применяется к полному URL-адресу в конфигурационных файлах на сервере. Однако в файлах конфигурации для каждого каталога префикс для каждого каталога (который всегда один и тот же для определенного каталога) автоматически удаляется для сопоставления шаблонов и автоматически добавляется после того, как была выполнена замена. Эта функция необходима для многих видов перезаписи - без этого вам всегда приходилось сопоставлять родительский каталог, который не всегда возможен.
Я все равно получаю неправильный результат, независимо от того, помещаю ли я/перед индексом index.php в RewriteRule.
Это,
http://server/test/stream/stream
превращается в
http://server/index.php/stream
не
http://server/test/index.php/stream
когда файл .htaccess находится в/test/.