На моем веб-сервере Apache я поместил это:
<Directory /var/www/MYDOMAIN.com/htdocs>
SetHandler mod_python
PythonHandler mod_python.publisher
PythonDebug On
</Directory>
Затем у меня есть файл handler.py с функцией индексации.
Когда я перехожу на MYDOMAIN.com/handler.py, я вижу веб-страницу, созданную функцией индекса (просто обычная HTML-страница). Все остальные страницы относятся к этому типу: MYDOMAIN.com/handler.py/какое-то имя, где какое-то имя соответствует функции в файле handler.py.
Но когда я захожу на MYDOMAIN.com, я получаю следующее:
Not Found
The requested URL / was not found on this server.
Есть ли способ с помощью mod_python и publisher просто использовать корень, а не name.py в качестве отправной точки?
Я уже пробовал это в файле конфигурации apache:
DirectoryIndex handler.py
Но безрезультатно :(






Попробуйте создать в каталоге пустой файл с именем index (или что-то еще), а затем используйте
DirectoryIndex index
Похоже, проверка DirectoryIndex выполняется с учетом файловой системы.
Да, но вам нужно создать свой собственный обработчик. В настоящее время вы используете издателя, он просто проверяет URI и загружает указанный модуль python.
Чтобы создать свой собственный обработчик, вам нужно создать такой модуль (просто минималистичный пример):
from mod_python import apache
def requesthandler(req):
req.content_type = "text/plain"
req.write("Hello World!")
return apache.OK
Затем вы просто указываете на него в конфигурации Apache.
Вы все еще можете использовать обработчик издателя внутри своего собственного обработчика, хотя у вас не может быть красивых URL-адресов с ним AFAIK.
Не используйте mod_python. Это отстой. Вместо этого используйте mod_wsgi.