2010-08-31 7 views
1

Ainsi, chaque tutoriel web.py j'ai vu cette ligne comprend:Web.py URL Mapping ne pas accepter «/»

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

Et puis, plus tard, la classe d'index est définie par une fonction GET et bientôt. Mon problème est, cela ne fonctionne pas. En utilisant le code ci-dessus, j'obtiens une erreur 404. Utilisation de la cartographie fonctionne suivant:

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

Mais qui va prendre, au moins au début, chaque URL possible, et je veux seulement un accès à la racine du domaine à traiter par « index ». Halp?

Quelques informations de base:

Python 2.6, Web.py 0.3, Apache 2.2 avec mod_wsgi

Je ne sais pas ce que le reste serait utile, donc s'il y a quelque chose d'important que je peux ajouter (le VirtualHost d'Apache , peut-être?) S'il vous plaît demander et je vais l'ajouter ici.

EDIT: Y compris ma config 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

Mettez à jour votre question avec la configuration de mod_wsgi dans le fichier de configuration Apache. C'est à dire, comment vous définissez WSGIScriptAlias. Les exemples dans la documentation web.py que j'ai vu sont cassés et j'ai essayé d'amener les gens à les mettre à jour un certain nombre de fois mais personne n'était intéressé. Ainsi, suivre ces instructions pourrait être la cause du problème. –

+0

Ainsi inclus. J'espère que vous remarquerez le drapeau rouge. Merci! –

Répondre

5

Pour des informations lire:

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

vous présumant avez seulement une application WSGI à monter à la racine du site et de seulement statique fichiers ou autres ressources sont sous/statique, puis au lieu de:

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> 

utilisation:

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> 

Vous confondez plusieurs façons de configurer mod_wsgi qui ne doivent pas être utilisés ensemble.

Si vos besoins sont autres, vous devez être plus clair sur ce que vous voulez faire.

+0

Fonctionne parfaitement. Et même mieux que cela, c'est tout à fait logique. Merci!! –

Questions connexes