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]