Pete Storey wrote:
Hi

I've got what I think is a pretty normal setup, where I have an Apache
server serving some content for a website, and using mod_jk to connect to
Tomcat running on another server.  My problem is that I'm also trying to
use mod_rewrite to ­ err, rewrite URLs.  In short, if I do this the
'normal' way and include rewrite directives in the .htaccess file for the
website, it doesn't work and they are ignored, however if I put them in
the main httpd.conf file, before the JkMount directive, then they do work.

This appears to be a case of a problem with the order in which
modules/filters hook into Apache and are run;  I have looked at the
documentation and searched about for answers on this but found nada.  I've
tried using the various JkOptions setups but it doesn't seem to achieve
much.

In my httpd.conf, mod_rewrite is loaded before mod_jk though I don't think
this matters especially.

Some potentially relevant config -

- in httpd.conf

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>

<Directory "/var/www/html">

    Options -Indexes +FollowSymLinks

  <LimitExcept GET HEAD POST>
     deny from all
  </LimitExcept>

    AllowOverride All

    Order allow,deny
    Allow from all

</Directory>

AccessFileName .htaccess

JkWorkersFile /etc/httpd/conf/workers.properties
JkShmFile     /var/log/httpd/mod_jk.shm
# Rotate weekly
JkLogFile     "|/usr/sbin/rotatelogs /var/log/httpd/mod_jk.log 604800"
JkLogLevel    warn
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
#JkOptions     +ForwardURIProxy

- Inside the (included into httpd.conf) virtual host.conf file



    RewriteEngine on
    Include vhosts/htaccess/mysite.htaccess

# Mount all to Tomcat
    JkMount /* mysite
# Handle images locally
    JkUnMount /*.gif mysite
    JkUnMount /*.jpg mysite
    JkUnMount /*.jpeg mysite
    JkUnMount /*.png mysite

- Inside the my site.htaccess file (example line)



# McAfee secure image
RewriteRule ^/assets/cached/mcafee\.png /assets/php/mcafeeimage.php [L,NC]

Now this all works fine - except that I have to have a file which is
directly included into the httpd.conf, and which thus requires the server
to be restarted every time you want to make a change.  On top of that, if
there is a problem in the file, then the whole server will fail to start,
which is clearly far from ideal.

Is there a way to hook in the RewriteEngine in .htaccess rather than
having to include them like this?  I can't believe I am the first person
to discover this/have this setup?


A side suggestion : in one of the on-line documentation pages reative to the mod_jk configuration, at the very bottom of the page, it shows another "configuration style" : instead of using JkMount/JkUnmount, you use an Apache <Location> (or <LocationMatch>) section, with a line :

SetHandler jakarta-servlet

This does not really change anything in terms of how it works deep down, but it makes it much clearer (in my view) how the order of precedence is determined at the Apache level. The "SetHandler" directive indicates what the "Apache response handler" is, and this fits better in the global Apache request/response cycle, allowing one to figure out which thing runs before/after what.



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to