RewriteMap не работает вообще

Я пытаюсь заставить MapRewrite работать для некоторых тщеславных URL, но мне просто не везет. Я не получаю ошибки, это просто не работает (перенаправление).

Вот код, который я поместил в свой vhost.conf:

RewriteEngine On
RewriteMap vanURL txt:/var/www/vhosts/myconditions.txt
RewriteCond ${vanURL:$1|not-found} ^(.+)$
RewriteCond %1 ~^not-found$
RewriteRule ^/(.*) /${vanURL:$1|/$1} [L]

Я собираюсь определить, существует ли "www.mydomain.com/some_folder". Если это не так, поищите в myconditions.txt файл some_folder и перенаправьте его в соответствующее местоположение.

Вот пример MyConditions.txt

some_folder another_folder
some_folder_two another_folder_two

Посещение www.mydomain / some_folder просто мертвая ссылка.

Может кто-то указать мне верное направление?

(Обратите внимание, что я тестировал помещение мусора в мои Vhost.conf и.htaccess, чтобы убедиться, что файлы читаются)

1 ответ

Решение

Вы не можете использовать %1 в LSH условия, используйте отрицательный взгляд так:

RewriteEngine On

RewriteMap vanURL txt:/var/www/vhosts/myconditions.txt

RewriteRule ^/([^/]+)(/.*)?$ /${vanURL:$1}$2 [PT]
Другие вопросы по тегам