Мод переписать правила для размещения нескольких проектов с использованием Zend Framework - PullRequest
0 голосов
/ 07 июля 2011

У меня есть несколько небольших проектов, которые я хочу разместить на одном виртуальном хосте с помощью Zend Framework. Структура:

    apps/
        testapp1/
          application/
          index.php,
        testapp2/
          application/
          index.php

Корень документа в виртуальном хосте выглядит так: DocumentRoot /var/www/apps/

Мне нужно универсальное правило mod_rewrite, которое преобразует URL-адреса, такие как /apps/testapp1/xxx, в /apps/testapp1/index.php.

Любая помощь будет принята с благодарностью, поскольку я пытаюсь решить эту проблему в течение нескольких часов. Спасибо.

1 Ответ

1 голос
/ 07 июля 2011
  1. Если ваш DocumentRoot для веб-сайта равен /var/www/apps/, то я думаю, URL-адреса будут http://www.example.com/testapp1/ajax вместо http://www.example.com/apps/testapp1/ajax.Если это так, то вам нужно удалить apps/ часть из этих правил.

  2. Эти правила должны быть помещены в ваш .htaccess в корневую папку веб-сайта.

  3. Если у вас там уже есть какие-то правила, то эти новые правила необходимо поместить в правильное место, так как порядок правил имеет значение .

  4. Возможно, вам понадобится добавить туда строку RewriteEngine On, если у вас ее еще нет.

Это правило переписывает /apps/testapp1/ajax в /apps/testapp1/index.php, другие URL не будутбыть затронутым:

RewriteRule ^apps/testapp1/ajax$ /apps/testapp1/index.php [NC,QSA,L]

Это правило переписывает ВСЕ URL, которые заканчиваются на /ajax, в /index.php (например, /apps/testapp1/ajax => /apps/testapp1/index.php, а также /apps/testapp2/ajax => /apps/testapp2/index.php):

RewriteRule ^(.+)/ajax$ /$1/index.php [NC,QSA,L]

ОБНОВЛЕНИЕ:

Это "универсальное" правило переписывает /apps/testapp1/xxx в /apps/testapp1/index.php, а также /apps/testapp2/something => /apps/testapp2/index.php:

RewriteRule ^(.+)/([^/\.]+)$ /$1/index.php [NC,QSA,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...