В настоящее время у меня возникли проблемы с настройкой правил (ов) перезаписи в файле .htaccess для сервера Apache 2.2 с mod_rewrite. Вот общая идея того, что я хочу сделать:apache mod_rewrite: Как добавить разные правила перезаписи для того же каталога в зависимости от существования файла в другом каталоге?
Предположим, что домен сервера example.com/, и все запросы example.com/abc/ и пути ниже этого каталога должны быть перезаписаны. Есть два сценария:
прошу непосредственно example.com/abc/ или example.com/abc/index.php должны стать просьбами example.com/index.php с дополнительным параметром, чтобы указать оригинал каталог запроса. Приведем несколько примеров:
example.com/abc/
==>example.com/abc/index.php?directory=abc
example.com/abc/?foo=1&bar=2
==>example.com/abc/index.php?directory=abc&foo=1&bar=2
example.com/abc/?a=b&c=d
==>example.com/abc/index.php?directory=abc&a=b&c=d
- ... и так далее
просит к файлам в example.com/abc/ должны появляться запросы к файлам в example.com/, если эти файлы существуют. для указания текущего каталога. Приведем несколько примеров:
example.com/abc/image.png
==>example.com/image.png
(если позже файл существует)example.com/abc/sub/file.css
==>example.com/sub/file.css
(если позже файл существует)example.com/abc/foo/bar/baz/name.js
==>example.com/foo/bar/baz/name.js
(если более поздний файл есть)- ... и прочее.
Содержание моей .htaccess в настоящее время выглядит примерно так:
RewriteEngine on
Options FollowSymLinks
RewriteBase/
# rule for files in abc/: map to files in root directory
RewriteCond $1 -f
RewriteRule ^abc/(.*?)$ $1
# rule for abc/index.php: map to index.php?directory=abc&...
RewriteCond $1 !-f
RewriteRule ^abc/(.*?)$ index.php?directory=abc&$1 [QSA]
Поздний правило, кажется, работает, запросы example.com/abc/index.php получить переписаны, как предполагалось , Однако это не работает для файлов в каталоге abc /. Любые подсказки о том, что я делаю неправильно здесь, и как решить эту проблему, оцениваются. Какие изменения должны быть применены к .htaccess, чтобы получить работу, как описано?