I have a set of RewriteRule directives in an Apache HTTPD v2.2.6 on a Solaris 10 zone which work just fine to take any incoming URI

                /robots.txt

and cause that to execute a perl script, /robotz/robots.pl

where a ScriptAlias defines the /robotz directory, outside my document root 
tree.

The rewrites work just fine, every time /robots.txt is requested, the output of
/robotz/robots.pl is returned.

I have the SAME configuration of ServerAlias and RewriteRule directives being used on a Red Hat Linux box with Apache HTTPD v2.2.3, and the resultant rewrites according to the rewrite log file show the document root being prepended to the rewritten pattern, causing the request to be for
<documentRoot>/robotz/robots.pl, which of course does not exist.

I'm assuming from the outset that I have something missing in my RewriteRule
directives...  not something where the directory definition for the directory
resolved from ScriptAlias is not physically resident inside the appropriate VirtualHost (so it's available to ALL VirtualHosts defined).

Here's a snippet of the rewrite.log file:

(2) init rewrite engine with requested uri /robotz/robots.pl
(3) applying pattern '^/robots.txt$' to uri '/robotz/robots.pl'
(3) applying pattern '^/(.*)' to uri '/robotz/robots.pl'
(4) RewriteCond: input='secureappsdev.libraries.psu.edu'
         pattern='!^secureappsdev\.libraries\.psu\.edu' [NC] => not-matched
(1) pass through /robotz/robots.pl

        Well, that works just fine.  Specified the final path and rewrites
        basically skipped past it.  Script runs and presents expected output.

(2) init rewrite engine with requested uri /robots.txt
(3) applying pattern '^/robots.txt$' to uri '/robots.txt'
(2) rewrite '/robots.txt' ->
        'https://secureappsdev.libraries.psu.edu/robotz/robots.pl'
(3) reduce https://secureappsdev.libraries.psu.edu/robotz/robots.pl ->
        /robotz/robots.pl
(2) remember /robotz/robots.pl to have MIME-type 'application/x-httpd-cgi'
(2) local path result: /robotz/robots.pl
(2) prefixed with document_root to /dlt/webservers/cf9/htdocs/robotz/robots.pl
(1) go-ahead with /dlt/webservers/cf9/htdocs/robotz/robots.pl [OK]
(1) force filename /dlt/webservers/cf9/htdocs/robotz to have MIME-type
        'application/x-httpd-cgi'

        But this ultimately results in a 404 since there's no "robotz"
        directory in the document root tree under htdocs.  It's PARALLEL
        to the htdocs directory, in fact.

And here are (all of) my rewrite directives ("\" to wrap, not really in the
configuration file though...):

RewriteEngine On
RewriteLogLevel 9
RewriteLog logs/secureappsdev-rewrite.log
RewriteRule ^/robots.txt$  \
        https://secureappsdev.libraries.psu.edu/robotz/robots.pl  \
                [L,T=application/x-httpd-cgi]
RewriteCond %{SERVER_NAME}   !^secureappsdev\.libraries\.psu\.edu [NC]
RewriteCond %{SERVER_NAME}   !=""
RewriteCond %{HTTP_HOST}   !^secureappsdev\.libraries\.psu\.edu [NC]
RewriteCond %{HTTP_HOST}   !=""
RewriteRule ^/(.*) https://secureappsdev.libraries.psu.edu/$1 [L,R=301]


They're all in a VirtualHost definition <VirtualHost \       
                                secureappsdev.libraries.psu.edu:443>

The VH stanza contains not only these Rewrite directives, but also contains
        ScriptAlias /robotz/ "/dlt/webservers/cf9/robots/"

The <Directory "/dlt/webservers/cf9/robots/"></Directory> stanza is
EXTERNAL to the VH stanza, just like it is on the Solaris configuration where
all this works.


        Thoughts?

--
J.Lance Wilkinson ("Lance")           InterNet: lance.wilkin...@psu.edu
Systems Design Specialist - Lead        Phone: (814) 865-4870
Digital Library Technologies            FAX:   (814) 863-3560
E3 Paterno Library
Penn State University
University Park, PA 16802

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org
  "   from the digest: users-digest-unsubscr...@httpd.apache.org
For additional commands, e-mail: users-h...@httpd.apache.org

Reply via email to