Может ли FallbackResource поддерживать шаблоны? - PullRequest
0 голосов
/ 21 февраля 2020

Вот моя конфигурация Справочника:

<Directory /var/www/html/sub-dir/*>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted 
    FallbackResource /sub-dir/*/index.php
</Directory>

Однако эта директива, похоже, не работает.

Есть ли способ выполнить sh это? Или лучше вернуться к сценарию маршрутизации PHP?

Заранее спасибо за помощь.

Редактировать:

Я нашел тег <DirectoryMatch> и решили, что это, вероятно, то, что я искал. Однако синтаксис уклоняется от меня. Вот что у меня сейчас:

<DirectoryMatch "^/var/www/html/sub-dir/(?<chindex>[0-9])">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted 
    FallbackResource /subdir/%{env:MATCH_CHINDEX}/index.php
</DirectoryMatch>

Мой DocumentRoot равен /var/www/html

У меня есть два каталога:

/var/www/html/sub-dir/0/
/var/www/html/sub-dir/1/

Я хочу, чтобы это правило применялось к обоим каталогам, но с использованием index.php, содержащегося в соответствующих каталогах (в /0/index.php и /1/index.php, соответственно).

Сервер в настоящее время ошибается на 400 неверных запросов при наборе https://domain.tld/sub-dir/0/Extraneous-Text-That-Should-Trigger-FallbackResource

Какая часть моего синтаксиса неверна?

1 Ответ

1 голос
/ 21 февраля 2020

Предполагая, что /var/www/html является вашим DocumentRoot, используйте:

<Directory /var/www/html/sub-dir/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted 
    FallbackResource /sub-dir/index.php
</Directory>

Запасная страница /sub-dir/index.php будет использоваться для несуществующих путей ниже /sub-dir/, таких как /sub-dir/foo.php или /sub-dir/foo/bar.php и вы можете получить доступ к исходному URL-адресу через переменную PHP $_SERVER['REQUEST_URI'].

Для другой страницы в виде подкаталога подкаталога /var/www/html/sub-dir/, например /var/www/html/sub-dir/sub-dir2, вам понадобится еще один FallbackResource, например:

<Directory /var/www/html/sub-dir/sub-dir2/>
    FallbackResource /sub-dir/sub-dir2/index.php
</Directory>

или реализовать механизм маршрутизации / включения в /sub-dir/index.php.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...