.htaccess config с символическими ссылками и индексными файлами, которые не работают должным образом

Как и многие веб-разработчики, мне нравится использовать .htaccess, чтобы направлять весь трафик на домен через единую точку входа, когда запрос не для файла, который существует в общедоступном каталоге.

Так что-то вроде этого:

RewriteEngine On # enable symbolic links Options +FollowSymLinks RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.+) index.php [L] 

Это означает, что если запрос не для файла css или изображения, мой index.php получает запрос, и я могу выбрать, что делать (обслуживать некоторый контент или, возможно, 404)

Отлично работает, но я наткнулся на проблему, которая, похоже, не поможет мне решить.

Корень моего документа выглядит следующим образом:

 asymboliclink -> /somewhere/else css .htaccess img includes index.php 

Тем не менее, Apache не видит символическую ссылку на каталог как каталог. Он передает запрос на мой index.php в корне. Я хочу передать ссылку, как если бы это была папка, поскольку это ссылка на папку с ее собственным index.php. Я могу получить доступ к http://example.com/asymboliclink/index.php , введя его в адресной строке браузера, но я хочу иметь доступ к нему через http://example.com/asymboliclink

Что мне нужно добавить в мой .htaccess файл, чтобы это произошло?

    Используйте ключ -l для проверки символической ссылки

     RewriteEngine On # enable symbolic links Options +FollowSymLinks RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^(.+) index.php [L] 

    Документация

    http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html – ctrl + f для «Обрабатывает TestString как путь и проверяет, существует ли она или нет, и является символической ссылкой».

    Флаг -l ссылается на символические ссылки

     RewriteEngine On # enable symbolic links Options +FollowSymLinks RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^(.+) index.php [L]