2015-04-13 3 views
1

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

Вот код, который я поставил в моем 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 для обеспечения файлов считываются)

+0

Я не вижу причин для RewriteConds. Вы переписываете, а не перенаправляете 'RewriteRule ^/(. +) $/$ {VanURL: $ 1 | $ 1} [L]' – Deadooshka

ответ

1

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

RewriteEngine On 

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

RewriteRule ^/([^/]+)(/.*)?$ /${vanURL:$1}$2 [PT] 
+0

Спасибо, но это все еще не работает для меня. Ничего не произошло. Это похоже на то, что его не читают. Если вы уверены, что это должно сработать, можете ли вы предоставить какие-либо советы по отладке? – Andrew

+0

Это было бы здорово - FYI, я попробовал этот пример (скопировать + вставить): http://www.onlamp.com/pub/a/apache/2005/04/28/apacheckbk.html, и это сработало. – Andrew

+0

Привет, спасибо, последняя строка не работает для меня, но это произошло: RewriteRule ^/(. *)/$ {VanURL: $ 1} [PT]. Однако ни одна строка, похоже, не рассматривает подпапки. Что делать, если я хотел бы также рекурсивно рассмотреть всю папку? Например, «some_folder/anything/index.html» также перенаправляется на «another_folder/anything/index.html»? – Andrew