Я пытаюсь написать код .htaccess, который будет игнорировать последний подкаталог URL-адреса, направлять в каталог до этого последнего подкаталога, но оставить URL-адрес нетронутым.
Это в контексте SPA, в котором я использую JavaScript для маршрутизации.
Если я перейду к каталогу xxx, который может быть произвольно глубоко вложен:
https://my-site/[subdirectories]/xxx
... затем при нажатии на относительные ссылки в каталоге xxx, например:
./aaa
./bbb
./ccc
... что будет соответствовать (и создавать URL):
https://my-site/[subdirectories]/xxx/aaa
https://my-site/[subdirectories]/xxx/bbb
https://my-site/[subdirectories]/xxx/ccc
... тогда JavaScript обнаружит изменение в URL и выведет содержимое для «виртуальных» подкаталогов aaa
, bbb
, ccc
. Прекрасно и модно.
Однако, если я перейду к любому из этих URL-адресов напрямую, то есть, введя URL-адрес напрямую, а не используя навигацию по сайту, мой сайт выдаст ошибку 404, например aaa
, bbb
и ccc
не являются актуальными подкаталогами. Они являются «виртуальными» подкаталогами, не соответствующими фактическим папкам на сервере, и, таким образом, выдается ошибка.
Я хочу написать подпрограмму .htaccess, которая обнаружит начальную навигацию (прямое открытие):
https://my-site/[subdirectories]/xxx/aaa
https://my-site/[subdirectories]/xxx/bbb
https://my-site/[subdirectories]/xxx/ccc
и т.д.
... и просто откройте это место:
https://my-site/[subdirectories]/xxx
... но сохраните «виртуальный» подкаталог в конце (aaa
, bbb
, ccc
) в URL-адресе, как показано в строке URL-адреса. Мой JavaScript возьмет оттуда, чтобы ввести желаемый контент для aaa
, bbb
, ccc
. (И это прекрасно работает после того, как сначала перейдете непосредственно к https://my-site/[subdirectories]/xxx
, а затем просто нажмете на ссылки на aaa
, bbb
, ccc
; он напрямую попадет в любую из этих «подкаталогов».)
Можно ли это сделать с помощью .htaccess? Я борюсь.