Назад | Перейти на главную страницу

Преобразование правил перезаписи lighttpd в apache

Я занимаюсь преобразованием приложения из Unix в инфраструктуру на основе Windows, одно из внесенных изменений - использование apache вместо lighttpd для веб-сервера. По большей части это преобразование было прямым, однако у меня возникли проблемы с преобразованием логики перезаписи на новый сервер. Проведя день, пробуя различные конфигурации, я не добился успеха. Либо URL-адреса не перезаписываются, либо ВСЕ - ни один из сценариев недопустим. Вот правила lighttpd:

"^/$" => "/apex/f?p=314:1::::::",
"^/(view)/(\d{10,16})/(\d{1,10})/" => "/apex/f?p=314:ticket:$2::NO::P3_TICKET:$3",
"^/(estimate)/(\d{10,16})/(\d{1,10})/" => "/apex/f?p=314:estimate:$2::NO::P6_TICKET:$3",
"^/([A-Za-z0-9_-]*)/(\d{10,16})/$" => "/apex/f?p=314:$1:$2::NO:::",
"^/([A-Za-z0-9_-]*)/(\d{10,16})/f" => "/apex/f?p=314:$1:$2::NO:::",
"^/authenticate/(\d{10,16})/(.*)/$" => "/apex/f?p=314:authenticate:$1::NO::UN,HMAC,TS:$2",
"^/authenticate/(\d{10,16})/(.*)/wwv_flow.accept$" => "/apex/wwv_flow.accept",
"^/admin/$" => "/apex/f?p=4550:::::::"

И вот что я до сих пор пробовал в своем .htaccess:

RewriteEngine On
RewriteRule ^/(view)/(\d{10,16})/(\d{1,10})/ /apex/f?p=314:ticket:$2::NO::P3_TICKET:$3 [QSA,L]
RewriteRule ^/(estimate)/(\d{10,16})/(\d{1,10})/ /apex/f?p=314:estimate:$2::NO::P6_TICKET:$3 [QSA,L]
RewriteRule ^/([A-Za-z0-9_-]*)/(\d{10,16})/$ /apex/f?p=314:$1:$2::NO::: [QSA,L]
RewriteRule ^/([A-Za-z0-9_-]*)/(\d{10,16})/f /apex/f?p=314:$1:$2::NO::: [QSA,L]
RewriteRule ^/authenticate/(\d{10,16})/(.*)/$ /apex/f?p=314:authenticate:$1::NO::UN,HMAC,TS:$2 [QSA,L]
RewriteRule ^/authenticate/(\d{10,16})/(.*)/wwv_flow.accept$ /apex/wwv_flow.accept [QSA,L]
RewriteRule ^/admin/$ /apex/f?p=4550 [QSA,L]
RewriteRule ^/$ /apex/f?p=314:1:::::: [QSA,L]

В настоящее время это приводит к тому, что все URL-адреса пытаются переписать. Это нарушает работу большей части сайта, поскольку большая часть сайта не скрыта за правилами / логикой перезаписи.

Что я здесь делаю не так? Документация apache не так ясна (для меня), как документация lighttpd, поэтому мне трудно понять, что не так.