Динамический модуль по умолчанию в платформе зенда

Вы можете указать несколько файлов в AccessFileName, так что вы можете сделать: AccessFileName .htaccess.dev .htaccess

Что это сделает, так это предпочтение .htaccess.dev, а не .htaccess, если оно существует, и будет использовать .htaccess если .htaccess.dev не существует.

Однако, по моему мнению, вы делаете что-то не так, если вам нужно настроить .htaccess для каждой среды:)

Обновить с рабочим примером:

Если вы поставили AccessFileName .htaccess.dev .htaccess в вашей конфигурации Apache (например, vhost он будет работать как надо):

# curl -sI http://example.com/test.html | grep "x-htaccess"
x-htaccess: dev
# mv .htaccess.dev htaccess.dev
# curl -sI http://example.com/test.html | grep "x-htaccess"
x-htaccess: default

Содержимое .htaccess равно Header set x-htaccess default, а содержимое .htaccess.dev - Header set x-htaccess dev. [1115 ]

7
задан dragonmantank 17 May 2009 в 23:31
поделиться

4 ответа

Если вы планируете изменить модуль по умолчанию, вероятно, лучше всего указать пространство имен ВСЕ модули, а затем указать, что модуль по умолчанию должен иметь префикс:

Первое изменение модуль "блог" для использования пространства имен:

<?php

// Used to be "class IndexController"
class Blog_IndexController extends Zend_Controller_Action {

}

Затем вызовите setParam для параметра prefixDefaultModule в вашем экземпляре Zend_Controller_Front:

<?php

    // Allow your default module to be prefixed
    $frontController->setParam('prefixDefaultModule', true);

См. ошибка № 1831 для объяснения.

6
ответ дан 6 December 2019 в 23:13
поделиться

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

По крайней мере, так мы реализовали это;)

1
ответ дан 6 December 2019 в 23:13
поделиться

Похоже на работу подключаемого модуля preDispatch Controller.

Вы можете изменить запрос на изменение модуля на основе определенного запроса или идентификатора / сеанса / известных данных для пересылки или перенаправления по запросу.

0
ответ дан 6 December 2019 в 23:13
поделиться

используйте application.ini: resources.frontController.prefixDefaultModule = true resources.frontController.defaultModule = по умолчанию

4
ответ дан 6 December 2019 в 23:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: