У меня есть динамические базовые URL-адреса в /us/ , /ca/ и /fr-ca/ .  Используя предлагаемый RewriteCond, как упоминалось здесь , я смог заставить это работать в большинстве случаев.  Случаями, которые он работает, является то, что index.php не включен в URL-адрес, поэтому: 
  Для каждого из этих $_SERVER['BASE'] вернется /us/ . 
  Если мое приложение подключается к index.php в URL, BASE больше не предоставляется. 
  Я пытался использовать RewriteCond $0#%{REQUEST_URI} ^((?:index.php/)?)([^#]*)#(.*)\1$ , но весь URL-адрес возвращается как BASE 
  EDIT Я вижу теперь, что с ^ Я говорю htaccess ожидать index.php перед / directory /.  Продолжаем копаться здесь. 
Изменить 2 :
  Мой корень документа виртуального хоста указывает на /var/www/html .  Внутри / var / www / html есть реальный каталог, называемый us .  Каталоги ca и fr-ca являются символами для us . 
Мой htaccess переписывает ls:
 Options +FollowSymLinks RewriteEngine on RewriteCond $0#%{REQUEST_URI} ^([^#]*)#(.*)\1$ RewriteRule ^.*$ - [E=BASE:%2]