[mod_python] Mod_Python and RewriteRule

Nathan C. Tresch nathan at yapta.com
Wed Apr 11 20:07:21 EDT 2007


Of course you were right in your supposition that the page had a bug in it
causing [PT] to act wonky. I fixed that and it works as intended now.

Thanks!

On 4/11/07, Graham Dumpleton <graham.dumpleton at gmail.com> wrote:
>
> What if you use wget/curl to get the page? At least with those
> programs it should only make one request. There must be something in
> the page that causes the browser to re-request it.
>
> If mod_rewrite becomes a pain, the only other way would be to write
> using mod_python your own transhandler (I think this is best) which
> matches req.uri for what you want and then sets req.filename and
> req.args to what you need. Also possibly may want to even set
> req.handler at that point to 'mod_python' and even register the
> handler to call using req.add_handler(). That way the only thing in
> Apache configuration is PythonTransHandler and PythonOption
> directives. This will possibly give you better control than
> mod_rewrite but does mean that all requests go through Python handler
> code which may be a performance issue.
>
> Other than that suggestion, would need to experiment but don't have
> time right now.
>
> Graham
>
> On 12/04/07, Nathan C. Tresch <nathan at yapta.com> wrote:
> > When I load JUST the page I don't get the reloading problem, only when I
> use
> > the rewrite engine and [PT].
> >
> > Using liveHeaders for Firefox I end up with a zillion(sic) 200 status's,
> > they never seem to stop.
> >
> >
> > On 4/11/07, Graham Dumpleton <graham.dumpleton at gmail.com> wrote:
> > > On 12/04/07, Nathan C. Tresch <nathan at yapta.com> wrote:
> > > > When I use [PT] both Firefox and IE continually reload the page and
> peg
> > the
> > > > CPU at 100%, however, I get the content I'm after.
> > >
> > > If you see the content you want but the browser is reloading, that
> > > would suggest an issue with the page. Does the HTML for the page have
> > > some meta data which forces a reload after some period. Can you use
> > > some low level mechanism to get the page (curl, wget, telnet) and see
> > > what the actual HTTP status code is and confirm it is just a 200 and
> > > not some sort of redirection status. Also look to see if a Location
> > > header is being returned which may be a target of a redirect.
> > >
> > > Graham
> > >
> > > > The other two options alter the debug output slightly, but still
> give
> > the
> > > > same result.  The extra output just seems to specify it's setting
> the
> > > > MIME-type to mod_python
> > > >
> > > >
> > > >
> > > > On 4/11/07, Graham Dumpleton <graham.dumpleton at gmail.com> wrote:
> > > > > Does it make any difference if you use:
> > > > >
> > > > >   RewriteRule /trip-([0-9]*)/.*/
> > > > /user/trip.myt\?tab=airlines&id=$1 [PT]
> > > > >
> > > > > or:
> > > > >
> > > > >   RewriteRule /trip-([0-9]*)/.*/
> > > > /user/trip.myt\?tab=airlines&id=$1
> > > > > [H=mod_python]
> > > > >
> > > > > Can't remember if latter requires Apache 2.2 If older version of
> > > > > Apache maybe try:
> > > > >
> > > > >   RewriteRule /trip-([0-9]*)/.*/
> > > > /user/trip.myt\?tab=airlines&id=$1
> > > > > [T=mod_python]
> > > > >
> > > > > Graham
> > > > >
> > > > > On 12/04/07, Nathan C. Tresch < nathan at yapta.com> wrote:
> > > > > > Yes,  /user/trip.myt?tab=airline&id=18335 works.
> > > > > >
> > > > > >     AddHandler mod_python .py
> > > > > >     AddHandler mod_python .myt
> > > > > >     PythonHandler myghty.ApacheHandler::handle
> > > > > >     PythonPath
> > > > > > "[r'/usr/local/data/wwwdev/ntresch']+sys.path"
> > > > > >     PythonOption MyghtyInterpreterName r"ntresch_interp"
> > > > > >     PythonOption MyghtyComponentRoot \
> > > > > >     "[  \
> > > > > >
> > {'components':'/data/wwwdev/ntresch/public'}, \
> > > > > >
> > > > > >
> > {'templates':'/data/wwwdev/ntresch/myghty/templates'} \
> > > > > >     ]"
> > > > > >     PythonOption MyghtyDataDir
> > > > > > r"/data/wwwdev/ntresch/myghty/data"
> > > > > >
> > > > > >
> > > > > >     #PythonHandler mod_python.publisher
> > > > > >     PythonDebug On
> > > > > >
> > > > > > These lines are located in the main apache config file.
> > > > > >
> > > > > >
> > > > > > On 4/11/07, Graham Dumpleton <graham.dumpleton at gmail.com> wrote:
> > > > > > > Does using:
> > > > > > >
> > > > > > >   /user/trip.myt?tab=airline&id=18335
> > > > > > >
> > > > > > > in the browser work?
> > > > > > >
> > > > > > > What is the Apache configuration snippet you are using to
> enable
> > > > > > > mod_python for this URL? Where is it located, main Apache
> > > > > > > configuration or .htaccess file?
> > > > > > >
> > > > > > > Graham
> > > > > > >
> > > > > > > On 12/04/07, Nathan C. Tresch < nathan at yapta.com> wrote:
> > > > > > > > So, here is what I get:
> > > > > > > >
> > > > > > > > %tail -f rewrite_log
> > > > > > > > 67.42.99.238 - - [11/Apr/2007:15:44:23 --0700] [
> > > > > > > > dev.yapta.com/sid#80d05f0][rid#8d3c050/initial
> > ]
> > > > (2)
> > > > > > init
> > > > > > > > rewrite engine with requested uri
> /trip-18335/Minneapolis/St.
> > > > > > > > Paul/Washington/
> > > > > > > > 67.42.99.238 - - [11/Apr/2007:15:44:23 --0700] [
> > > > > > > > dev.yapta.com/sid#80d05f0][rid#8d3c050/initial]
> > (3)
> > > > > > > > applying pattern '/trip-([0-9]*)/.*/' to uri
> > > > > > '/trip-18335/Minneapolis/St.
> > > > > > > > Paul/Washington/'
> > > > > > > >  67.42.99.238 - - [11/Apr/2007:15:44:23 --0700] [
> > > > > > > > dev.yapta.com/sid#80d05f0][rid#8d3c050/initial]
> > (2)
> > > > > > rewrite
> > > > > > > > '/trip-18335/Minneapolis/St. Paul/Washington/' ->
> > > > > > > > '/user/trip.myt?tab=airline&id=18335'
> > > > > > > > 67.42.99.238 - - [11/Apr/2007:15:44:23 --0700] [
> > > > > > > > dev.yapta.com/sid#80d05f0][rid#8d3c050/initial
> > ]
> > > > (3)
> > > > > > split
> > > > > > > > uri=/user/trip.myt?tab=airline&id=18335 ->
> > > > > > > > uri=/user/trip.myt, args=tab=airline&id=18335
> > > > > > > > 67.42.99.238 - - [11/Apr/2007:15:44:23 --0700] [
> > > > > > > > dev.yapta.com/sid#80d05f0][rid#8d3c050/initial
> > ] (2)
> > > > > > local
> > > > > > > > path result: /user/trip.myt
> > > > > > > > 67.42.99.238 - - [11/Apr/2007:15:44:23 --0700] [
> > > > > > > > dev.yapta.com/sid#80d05f0][rid#8d3c050/initial
> > ]
> > > > (2)
> > > > > > > > prefixed with document_root to
> > > > > > > >
> > /usr/local/data/wwwdev/ntresch/public/user/trip.myt
> > > > > > > > 67.42.99.238 - - [11/Apr/2007:15:44:23 --0700] [
> > > > > > > > dev.yapta.com/sid#80d05f0][rid#8d3c050/initial
> > ]
> > > > (1)
> > > > > > > > go-ahead with
> > > > > > > >
> > /usr/local/data/wwwdev/ntresch/public/user/trip.myt
> > > > > > [OK]
> > > > > > > >
> > > > > > > > Yet my browser still gives me a 404.
> > > > > > > >
> > > > > > > > I suspect it's because python/myghty is looking for
> something in
> > the
> > > > > > > > origional path, it's modules maybe?  And it can't find
> anything
> > > > there.
> > > > > > > >
> > > > > > > >
> > > > > > > >  On 4/11/07, Graham Dumpleton <graham.dumpleton at gmail.com>
> > wrote:
> > > > > > > > > On 12/04/07, Nathan C. Tresch < nathan at yapta.com> wrote:
> > > > > > > > > > We're using Myghty and Mod_Python.  The following
> > RewriteRule
> > > > > > produces a
> > > > > > > > > > 404:
> > > > > > > > > >
> > > > > > > > > > RewriteRule /trip-([0-9]*)/.*/
> > > > > > > > > > /user/trip.myt\?tab=airlines&id=$1 [L]
> > > > > > > > > >
> > > > > > > > > > Previously, before we converted to PHP, the rule looked
> like
> > > > this:
> > > > > > > > > >
> > > > > > > > > > RewriteRule /trip-([0-9]*)/.*/
> > > > > > > > > > /user/trip.php\?tab=airlines&id=$1 [L]
> > > > > > > > > >
> > > > > > > > > > This worked.
> > > > > > > > > >
> > > > > > > > > > Can anyone tell me what gives?
> > > > > > > > >
> > > > > > > > > Have you tried debugging what mod_rewrite is doing by
> > increasing
> > > > its
> > > > > > > > > logging output using the RewriteLogLevel directive etc?
> From
> > that
> > > > you
> > > > > > > > > can see what it finally rewrites it to. You can then try
> > putting
> > > > that
> > > > > > > > > URL into the browser directly and try and work out why any
> > other
> > > > > > > > > configuration may not be correct.
> > > > > > > > >
> > > > > > > > > Graham
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > --
> > > > > > > > Nathan C. Tresch
> > > > > > > > Software Engineer
> > > > > > > > YapTA! Inc.
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > >
> > > > > > Nathan C. Tresch
> > > > > > Software Engineer
> > > > > > YapTA! Inc.
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > >
> > > > Nathan C. Tresch
> > > > Software Engineer
> > > > YapTA! Inc.
> > >
> >
> >
> >
> > --
> >
> > Nathan C. Tresch
> > Software Engineer
> > YapTA! Inc.
>



-- 
Nathan C. Tresch
Software Engineer
YapTA! Inc.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mm_cfg_has_not_been_edited_to_set_host_domains/pipermail/mod_python/attachments/20070411/8237c503/attachment.html


More information about the Mod_python mailing list