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

Маршрутизация Apache TracEnv

у меня ситуация со многими экземплярами trac. Все они имеют одинаковую структуру в файловой системе.

PATH/trac1
PATH/trac2
PATH/trac3

у меня есть эта конфигурация

<Location /trac/trac1>
 SetHandler mod_python
 PythonInterpreter main_interpreter
 PythonHandler trac.web.modpython_frontend 
 PythonOption TracEnv PATH/trac1
 PythonOption TracUriRoot /trac/trac1
 PythonOption PYTHON_EGG_CACHE PATH/eggs/
</Location>
<Location /trac/trac2>
 SetHandler mod_python
 PythonInterpreter main_interpreter
 PythonHandler trac.web.modpython_frontend 
 PythonOption TracEnv PATH/trac2
 PythonOption TracUriRoot /trac/trac2
 PythonOption PYTHON_EGG_CACHE PATH/eggs/
</Location>
<Location /trac/trac3>
 SetHandler mod_python
 PythonInterpreter main_interpreter
 PythonHandler trac.web.modpython_frontend 
 PythonOption TracEnv PATH/trac3
 PythonOption TracUriRoot /trac/trac3
 PythonOption PYTHON_EGG_CACHE PATH/eggs/
</Location>

интересно, можно ли сделать что-то вроде (TracEnvParentDir не вариант)

<Location /trac/{ENV}>
 SetHandler mod_python
 PythonInterpreter main_interpreter
 PythonHandler trac.web.modpython_frontend 
 PythonOption TracEnv PATH/{ENV}
 PythonOption TracUriRoot /trac/{ENV}
 PythonOption PYTHON_EGG_CACHE PATH/eggs/
</Location>

Спасибо за уделенное время.

РЕДАКТИРОВАТЬ: TracEnvParentDir не вариант, потому что моя структура следующая

+---projs
    +---trac1
    ¦   +---public [instance]
    ¦   +---t1
    ¦   ¦   +---common [instance]
    ¦   ¦   +---g1 [instance]
    ¦   ¦   +---g2 [instance]
    ¦   ¦   +---g3 [instance]
    ¦   ¦   +---g4 [instance]
    ¦   ¦   +---g5 [instance]
    ¦   +---t2
    ¦   ¦   +---common [instance]
    ¦   ¦   +---g1 [instance]
    ¦   ¦   +---g2 [instance]
    ¦   ¦   +---g3 [instance]
    ¦   ¦   +---g4 [instance]
    ¦   ¦   +---g5 [instance]
    ¦   +---t3
    ¦       +---common [instance]
    ¦       +---g1 [instance]
    ¦       +---g2 [instance]
    ¦       +---g3 [instance]
    ¦       +---g4 [instance]
    ¦       +---g5 [instance]
    ¦  
    +---trac2
        +---public [instance]
        +---t1
        ¦   +---common [instance]
        ¦   +---g1 [instance]
        ¦   +---g2 [instance]
        ¦   +---g3 [instance]
        ¦   +---g4 [instance]
        ¦   +---g5 [instance]
        +---t2
        ¦   +---common [instance]
        ¦   +---g1 [instance]
        ¦   +---g2 [instance]
        ¦   +---g3 [instance]
        ¦   +---g4 [instance]
        ¦   +---g5 [instance]
        +---t3
            +---common [instance]
            +---g1 [instance]
            +---g2 [instance]
            +---g3 [instance]
            +---g4 [instance]
            +---g5 [instance]

Я использую TracEnvParentDir на t1, t2 и t3 и TracEnv на trac1 / public и trac2 / public

Интересно, можно ли определить часть переменной url.

Официальная документация mod_wsgi по интеграции Trac с mod_wsgi расскажет, как это сделать. Видеть:

http://code.google.com/p/modwsgi/wiki/IntegrationWithTrac

Вы можете переключиться на mod_wsgi вместо modpython и увидеть здесь мой ответ, как делать то, что вы хотите: Динамические поддомены, mod_python и trac