2010-08-31 2 views
1

Таким образом, каждый web.py учебник я видел включает в себя строку:Web.py URL Mapping не принимает «/»

urls = (
    '/', 'index', 
) 

, а затем, позже, класс индекс определяется с помощью функции GET и скоро. Моя проблема в том, что это не работает. Используя приведенный выше код, я получаю ошибку 404. Используя следующее отображение работы:

urls = (
    '/.*', 'index', 
) 

Но что собирается поймать, по крайней мере, первые, каждый возможный URL, и я хочу, только доступ к корневой папке домена будет обрабатываться «индекс». Halp?

Некоторые основные сведения:

Python 2.6, web.py 0.3, Apache 2.2 с mod_wsgi

Не уверен, что еще было бы полезно, так что если есть что-то важное, я могу добавить (в VirtualHost от Apache , может быть?), пожалуйста, спросите, и я добавлю его здесь.

EDIT: В том числе мой Apache VirtualHost конфигурации:

<VirtualHost *:80> 
    ServerName dd.sp4.us 
    DocumentRoot /home/steve/www/nov2010/public/ 
    ErrorLog /home/steve/www/nov2010/log/error.log 
    CustomLog /home/steve/www/nov2010/log/access.log combined 

    WSGIScriptAlias//home/steve/www/nov2010/app 
    Alias /static /home/steve/www/nov2010/public 

    <Directory /home/steve/www/nov2010/app> 
     SetHandler wsgi-script 
     Options ExecCGI 
    </Directory> 

    AddType text/html .py 

    <Location /> 
     RewriteEngine on 
     RewriteBase/
     RewriteCond %{REQUEST_URI} !^/static 
     RewriteCond %{REQUEST_URI} !^(/.*)+code.py/ 
     RewriteRule ^(.*)$ code.py/$1 [PT] 
    </Location> 
</VirtualHost> 
+2

Обновите свой вопрос с помощью конфигурации mod_wsgi в конфигурационном файле Apache. То есть, как вы определяете WSGIScriptAlias. Примеры в документации web.py, которые я видел, нарушены, и я пытался заставить людей обновлять их несколько раз, но никто не интересовался. Таким образом, следующие инструкции могут быть причиной проблемы. –

+0

Так включен. Надеюсь, вы заметите красный флаг. Благодаря! –

ответ

5

Для фона чтения:

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

Предположив у вас есть только приложение один WSGI для установки в корне сайта и только статические файлы или другие ресурсы находятся под/статическим, а затем:

WSGIScriptAlias//home/steve/www/nov2010/app 
Alias /static /home/steve/www/nov2010/public 

<Directory /home/steve/www/nov2010/app> 
    SetHandler wsgi-script 
    Options ExecCGI 
</Directory> 

AddType text/html .py 

<Location /> 
    RewriteEngine on 
    RewriteBase/
    RewriteCond %{REQUEST_URI} !^/static 
    RewriteCond %{REQUEST_URI} !^(/.*)+code.py/ 
    RewriteRule ^(.*)$ code.py/$1 [PT] 
</Location> 

использование:

Alias /static /home/steve/www/nov2010/public 

WSGIScriptAlias//home/steve/www/nov2010/app/code.py 

<Directory /home/steve/www/nov2010/app> 
Order allow,deny 
Allow from all 
</Directory> 

Вы путаете несколько способов настройки mod_wsgi, которые не должны использоваться вместе.

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

+0

Работает отлично. И даже лучше, это тоже имеет смысл. Благодаря!! –