Solved

Proxy Pass + Mod Rewrite

Posted on 2009-03-30
7
994 Views
Last Modified: 2013-11-22
I am trying to re-write only a particular file type. In this case its .jsp - The problem is that the re-write rules are trying to re-write everything to tomcat. I am using:

<IfModule mod_rewrite.c>
    RewriteCond %{REQUEST_URI} !^/addurl
    RewriteRule /*.jsp ajp://127.0.0.1:8009%{REQUEST_URI} [P]
</IfModule>

This works however for any subdirectory such as the one in the example I have to add a rule otherwise its being sent to tomcat. Is there a better way to do this? The reason I am doing this is because the site is comprised of mixed content including Java (.jsp), PHP, and HTML

 Any help would be greatly appreciated as this is a time sensitive issue.
0
Comment
Question by:Sam Cohen
  • 4
  • 3
7 Comments
 
LVL 27

Accepted Solution

by:
caterham_www earned 500 total points
ID: 24021913
Other files, which should not go through tomcat have jsp in their path as well?
RewriteEngine on

# ending with .jsp

RewriteRule \.jsp$ ajp://127.0.0.1:8009%{REQUEST_URI} [P]

Open in new window

0
 
LVL 8

Author Comment

by:Sam Cohen
ID: 24022257
Sorry for the delay, and yes there are other files within the same directory that should not go through tomcat. There is a mixture of php, java and html within the same folder. I tried the rules you provided and it works for "index.jsp" however other paths such as domain.com/path/ do not work and return this error.

HTTP Status 404 - /addurl/index.jsp

type Status report

message /addurl/index.jsp

Also with that said I tried your rules without having "index.jsp" as a directory index type, and without that domain.com/path/ does work, however the index page is .jsp so therefore that no longer works.
0
 
LVL 27

Expert Comment

by:caterham_www
ID: 24022598
> HTTP Status 404 - /addurl/index.jsp

> type Status report

> message /addurl/index.jsp

That reads like a typical message from tomcat, not apache http server, which means that the request is being proxied but something went wrong at tomcat's side.
0
Control application downtime with dependency maps

Visualize the interdependencies between application components better with Applications Manager's automated application discovery and dependency mapping feature. Resolve performance issues faster by quickly isolating problematic components.

 
LVL 8

Author Comment

by:Sam Cohen
ID: 24022885
In that particular path /addurl there is no JSP, its only php in that particular folder. Thats the problem I am trying to find a way to fix. The root directory is similar to this:

domain.com/ contains java, html and php
domain.com/path/ contains php
domain.com/path2/ contains php and or html

When using the mod rewrite rule that I included in my original post it proxies only *.jsp in the root directory, but tries to proxy any sub directories also which do not contain java.

0
 
LVL 27

Assisted Solution

by:caterham_www
caterham_www earned 500 total points
ID: 24022941
How does your DirectoryIndex look like? Is there an index file for that folder? You should specify jsp files at the end of the list, e.g.


DirectoryIndex index.php index.jsp

Open in new window

0
 
LVL 8

Author Comment

by:Sam Cohen
ID: 24022999
Awesome! Combine the rewrite rules and changing the Directory index shes working like a charm!

I had:
DirectoryIndex index.jsp index.php index.htm index.html

which I changed to:
DirectoryIndex index.php index.htm index.html index.jsp

restarted apache(doing this from vhost config, not .htaccess) and she came right up! Thanks!
0
 
LVL 8

Author Closing Comment

by:Sam Cohen
ID: 31564466
Awesome this helped alot! thanks!
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Both Easy and Powerful How easy is PHP? http://lmgtfy.com?q=how+easy+is+php (http://lmgtfy.com?q=how+easy+is+php)  Very easy.  It has been described as "a programming language even my grandmother can use." How powerful is PHP?  http://en.wikiped…
If you've heard about htaccess and it sounds like it does what you want, but you're not sure how it works... well, you're in the right place. Read on. Some Basics #1. It's a file and its filename is .htaccess (yes, with a dot in the front). #…
This Micro Tutorial hows how you can integrate  Mac OSX to a Windows Active Directory Domain. Apple has made it easy to allow users to bind their macs to a windows domain with relative ease. The following video show how to bind OSX Mavericks to …
This is used to tweak the memory usage for your computer, it is used for servers more so than workstations but just be careful editing registry settings as it may cause irreversible results. I hold no responsibility for anything you do to the regist…

920 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now