Apache rewrite работает под FreeBSD, но не под CentOS

Apache rewrite работает под FreeBSD, но не под CentOS

У меня есть 5 производственных серверов, работающих под управлением FreeBSD 9.2, но мы планируем перейти на CentOS. Из-за этого я пытаюсь настроить несколько виртуальных машин для эмуляции нашей среды производственного сервера с использованием CentOS 6.6. Я все настроил, и все работает отлично, за исключением одного правила перезаписи.

<Directory /var/www/html/www/trunk/amapi>
  RewriteEngine on
  RewriteRule  ^$ public/    [L]
  RewriteRule  (.*) public/$1 [L]
</Directory>
<Directory /var/www/html/www/trunk/amapi/public>
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
</Directory>
<Directory /var/www/html/www/trunk>
  RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*start\.php
  RewriteRule ^start.php/?(.*)$ $1 [R=301,L]

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ start.php/$1?%{QUERY_STRING} [L]
</Directory>

Первые два правила перезаписи предназначены для API бэкенда с использованием Phalcon, и они отлично работают в обеих средах. Третье правило перезаписи — это перехват всех запросов, которые не соответствуют реальному файлу, в start.php, который пытается сопоставить их с модулем Phalcon, а затем на страницу 404, если ни один маршрут не сопоставляется.

По какой-то причине он работает под FreeBSD, на которой запущен Apache 2.2.27, но не под CentOS, на которой на данный момент запущен Apache 2.2.15. Это очень простое правило перезаписи, которое должно работать под любой версией Apache без проблем, но Apache продолжает выдавать 404, когда я пытаюсь получить доступ к файлу. Я что-то упускаю? Очевидно, что конфигурация SSL и определенные параметры отсутствуют в отображаемом коде, но это порядок, в котором reqrites появляются в ssl.conf.

Заранее спасибо

Обновление: логи Apache Rewrite:

10.1.1.135 - - [24/Feb/2015:17:39:17 --0500] [trunk.mydomain.com/sid#7f18f3072f98][rid#7f18f36099b8/initial] (2) init rewrite engine with requested uri /letters/custom/test
10.1.1.135 - - [24/Feb/2015:17:39:17 --0500] [trunk.mydomain.com/sid#7f18f3072f98][rid#7f18f36099b8/initial] (3) applying pattern '^/attc2/(.*)$' to uri '/letters/custom/test'
10.1.1.135 - - [24/Feb/2015:17:39:17 --0500] [trunk.mydomain.com/sid#7f18f3072f98][rid#7f18f36099b8/initial] (3) applying pattern '^/forms/(.*)$' to uri '/letters/custom/test'
10.1.1.135 - - [24/Feb/2015:17:39:17 --0500] [trunk.mydomain.com/sid#7f18f3072f98][rid#7f18f36099b8/initial] (3) applying pattern '^/grafx/(.*)$' to uri '/letters/custom/test'
10.1.1.135 - - [24/Feb/2015:17:39:17 --0500] [trunk.mydomain.com/sid#7f18f3072f98][rid#7f18f36099b8/initial] (3) applying pattern '^/xport/(.*)$' to uri '/letters/custom/test'
10.1.1.135 - - [24/Feb/2015:17:39:17 --0500] [trunk.mydomain.com/sid#7f18f3072f98][rid#7f18f36099b8/initial] (3) applying pattern '.*' to uri '/letters/custom/test'
10.1.1.135 - - [24/Feb/2015:17:39:17 --0500] [trunk.mydomain.com/sid#7f18f3072f98][rid#7f18f36099b8/initial] (4) RewriteCond: input='' pattern='!.*mydomain.com/.*$' [NC] => matched
10.1.1.135 - - [24/Feb/2015:17:39:17 --0500] [trunk.mydomain.com/sid#7f18f3072f98][rid#7f18f36099b8/initial] (4) RewriteCond: input='/letters/custom/test' pattern='\\.(jpg|gif|png)$' => not-matched
10.1.1.135 - - [24/Feb/2015:17:39:17 --0500] [trunk.mydomain.com/sid#7f18f3072f98][rid#7f18f36099b8/initial] (1) pass through /letters/custom/test

решение1

Интересно, может быть, проблема в неэкранированной точке? Попробуйте заменить эту строку:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*start\.php

С:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /\.*start\.php

Связанный контент