Firat KUCUK wrote:
Graham Dumpleton yazmış:
Firat KUCUK wrote ..
Hi,
i have a little problem about Directory Index.
this is our .htaccess file:
Allow from All
AddHandler mod_python .py
PythonHandler wepy.handler
PythonDebug On
DirectoryIndex index.htm index.html index.php index.py index.pl
wepy is a new PHP like web python library.
http://www.wepy.org/
we just type http://blablabla.com/wepy/
and our main file is index.py
but req.path_info is None
so in mod_python/apache.py/build_cgi_env function:
*if* req.path_info *and* len(req.path_info) > 0:
env[*"SCRIPT_NAME"*] = req.uri[:-len(req.path_info)]
*else*:
env[*"SCRIPT_NAME"*] = req.uri
i think should be like this.
if req.path_info:
env["SCRIPT_NAME"] = req.uri[:-len(req.path_info)]
else:
env["SCRIPT_NAME"] = req.uri
What is the actual problem you are trying to solve?
The "len(req.path_info) > 0" is actually redundant because when
req.path_info is a string and has length 0, the "req.path_info"
boolean check will fail anyway.
In other words, the change you made wouldn't make any difference
that I can see to the actual outcome. Is the redundancy all you
were wanting to point out???
BTW, you should be careful about what SCRIPT_NAME gets set
to by Apache and by this code. See discussion of strange things
that happen at:
https://issues.apache.org/jira/browse/MODPYTHON-68
Graham
briefly:
print len(None)
TypeError: len() of unsized object
if we use:
if req.path_info *and* len(req.path_info) > 0:
the same error will be occur.
Not in my python it doesn't.
Python 2.3.5 (#2, Nov 20 2005, 16:40:39)
[GCC 4.0.3 20051111 (prerelease) (Debian 4.0.2-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a = None
>>> if a and len(a) > 0:
... print True
... else:
... print False
...
False
>>>
Perhaps you could show us the full traceback?
Jim