mod_rewrite is sending multiple requests back to Lucee server
I seem to have a problem whereby mod_rewrite is sending multiple requests back to my Lucee server. Sometimes 2 requests, sometimes 4 requests. I have a special application framework in Lucee to handle and manage all requests. It requires the request to be rewritten and proxied back to Lucee as "/" (root) with a request parameter set to the user requested URI. All of the rewriting appears to work properly but more than one request gets fired by the backend server. The following is my rewrite rule setup:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ "/" [E=vPath:$1,PT,NE,NS,L]
<If "-T reqenv('vPath')">
RequestHeader add "vPath" "%{vPath}e"
</If>
The RewriteRule simply grabs the URI and sets the environment variable "vPath", then rewrites the URI to "/" with the parameters:
PT (pass through to next handler)
NE (no URI escaping of output)
NS (not for internal sub-requests)
L (last rule)
This all seems to work just as needed, however, in testing I have verified that the request hitting the code behind in Lucee is actually getting called multiple times. If I turn RewriteEngine off
, then only a single request is sent to the backend. Turn RewriteEngine on
and multiple requests are again sent (anywhere from 2 to 6).
Also note that it doesn't seem to matter if I use "P" (force proxy) or "PT" (pass through to next handler), I get the same multiple request results.
Any help would be greatly appreciated. I am somewhat of a NUBE to mod_rewrite.
System:
OS: Linux 4.18.0-11-generic
Java: 1.8.0_181
Lucee: 5.2.9.31
Apache Tomcat: 8.5.33
mod-rewrite url-rewriting coldfusion apache2 lucee
add a comment |
I seem to have a problem whereby mod_rewrite is sending multiple requests back to my Lucee server. Sometimes 2 requests, sometimes 4 requests. I have a special application framework in Lucee to handle and manage all requests. It requires the request to be rewritten and proxied back to Lucee as "/" (root) with a request parameter set to the user requested URI. All of the rewriting appears to work properly but more than one request gets fired by the backend server. The following is my rewrite rule setup:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ "/" [E=vPath:$1,PT,NE,NS,L]
<If "-T reqenv('vPath')">
RequestHeader add "vPath" "%{vPath}e"
</If>
The RewriteRule simply grabs the URI and sets the environment variable "vPath", then rewrites the URI to "/" with the parameters:
PT (pass through to next handler)
NE (no URI escaping of output)
NS (not for internal sub-requests)
L (last rule)
This all seems to work just as needed, however, in testing I have verified that the request hitting the code behind in Lucee is actually getting called multiple times. If I turn RewriteEngine off
, then only a single request is sent to the backend. Turn RewriteEngine on
and multiple requests are again sent (anywhere from 2 to 6).
Also note that it doesn't seem to matter if I use "P" (force proxy) or "PT" (pass through to next handler), I get the same multiple request results.
Any help would be greatly appreciated. I am somewhat of a NUBE to mod_rewrite.
System:
OS: Linux 4.18.0-11-generic
Java: 1.8.0_181
Lucee: 5.2.9.31
Apache Tomcat: 8.5.33
mod-rewrite url-rewriting coldfusion apache2 lucee
3
Start with logging the rewrite and go from there.
– Alex
Nov 17 '18 at 21:38
add a comment |
I seem to have a problem whereby mod_rewrite is sending multiple requests back to my Lucee server. Sometimes 2 requests, sometimes 4 requests. I have a special application framework in Lucee to handle and manage all requests. It requires the request to be rewritten and proxied back to Lucee as "/" (root) with a request parameter set to the user requested URI. All of the rewriting appears to work properly but more than one request gets fired by the backend server. The following is my rewrite rule setup:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ "/" [E=vPath:$1,PT,NE,NS,L]
<If "-T reqenv('vPath')">
RequestHeader add "vPath" "%{vPath}e"
</If>
The RewriteRule simply grabs the URI and sets the environment variable "vPath", then rewrites the URI to "/" with the parameters:
PT (pass through to next handler)
NE (no URI escaping of output)
NS (not for internal sub-requests)
L (last rule)
This all seems to work just as needed, however, in testing I have verified that the request hitting the code behind in Lucee is actually getting called multiple times. If I turn RewriteEngine off
, then only a single request is sent to the backend. Turn RewriteEngine on
and multiple requests are again sent (anywhere from 2 to 6).
Also note that it doesn't seem to matter if I use "P" (force proxy) or "PT" (pass through to next handler), I get the same multiple request results.
Any help would be greatly appreciated. I am somewhat of a NUBE to mod_rewrite.
System:
OS: Linux 4.18.0-11-generic
Java: 1.8.0_181
Lucee: 5.2.9.31
Apache Tomcat: 8.5.33
mod-rewrite url-rewriting coldfusion apache2 lucee
I seem to have a problem whereby mod_rewrite is sending multiple requests back to my Lucee server. Sometimes 2 requests, sometimes 4 requests. I have a special application framework in Lucee to handle and manage all requests. It requires the request to be rewritten and proxied back to Lucee as "/" (root) with a request parameter set to the user requested URI. All of the rewriting appears to work properly but more than one request gets fired by the backend server. The following is my rewrite rule setup:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ "/" [E=vPath:$1,PT,NE,NS,L]
<If "-T reqenv('vPath')">
RequestHeader add "vPath" "%{vPath}e"
</If>
The RewriteRule simply grabs the URI and sets the environment variable "vPath", then rewrites the URI to "/" with the parameters:
PT (pass through to next handler)
NE (no URI escaping of output)
NS (not for internal sub-requests)
L (last rule)
This all seems to work just as needed, however, in testing I have verified that the request hitting the code behind in Lucee is actually getting called multiple times. If I turn RewriteEngine off
, then only a single request is sent to the backend. Turn RewriteEngine on
and multiple requests are again sent (anywhere from 2 to 6).
Also note that it doesn't seem to matter if I use "P" (force proxy) or "PT" (pass through to next handler), I get the same multiple request results.
Any help would be greatly appreciated. I am somewhat of a NUBE to mod_rewrite.
System:
OS: Linux 4.18.0-11-generic
Java: 1.8.0_181
Lucee: 5.2.9.31
Apache Tomcat: 8.5.33
mod-rewrite url-rewriting coldfusion apache2 lucee
mod-rewrite url-rewriting coldfusion apache2 lucee
edited Nov 17 '18 at 6:02
Code Monkey
asked Nov 17 '18 at 5:42
Code MonkeyCode Monkey
265
265
3
Start with logging the rewrite and go from there.
– Alex
Nov 17 '18 at 21:38
add a comment |
3
Start with logging the rewrite and go from there.
– Alex
Nov 17 '18 at 21:38
3
3
Start with logging the rewrite and go from there.
– Alex
Nov 17 '18 at 21:38
Start with logging the rewrite and go from there.
– Alex
Nov 17 '18 at 21:38
add a comment |
1 Answer
1
active
oldest
votes
Alex was correct in referring me to utilizing the logging for mod_rewrite. [hat tip to Alex, thanks!]
Take note that for mod_rewrite v2.4 and above, you simply use
LogLevel alert rewrite:trace6
And this will update the log file in
/var/log/apache2/error.log
My problem was that I was not accounting for other requests to files that don't actually exist that were also being redirected to the web root, like
/favicon.ico
The lesson here is to be certain to account for all requests being proxied back to the application server, otherwise it will simply execute the root request for each URI that is directed to the application.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53348583%2fmod-rewrite-is-sending-multiple-requests-back-to-lucee-server%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Alex was correct in referring me to utilizing the logging for mod_rewrite. [hat tip to Alex, thanks!]
Take note that for mod_rewrite v2.4 and above, you simply use
LogLevel alert rewrite:trace6
And this will update the log file in
/var/log/apache2/error.log
My problem was that I was not accounting for other requests to files that don't actually exist that were also being redirected to the web root, like
/favicon.ico
The lesson here is to be certain to account for all requests being proxied back to the application server, otherwise it will simply execute the root request for each URI that is directed to the application.
add a comment |
Alex was correct in referring me to utilizing the logging for mod_rewrite. [hat tip to Alex, thanks!]
Take note that for mod_rewrite v2.4 and above, you simply use
LogLevel alert rewrite:trace6
And this will update the log file in
/var/log/apache2/error.log
My problem was that I was not accounting for other requests to files that don't actually exist that were also being redirected to the web root, like
/favicon.ico
The lesson here is to be certain to account for all requests being proxied back to the application server, otherwise it will simply execute the root request for each URI that is directed to the application.
add a comment |
Alex was correct in referring me to utilizing the logging for mod_rewrite. [hat tip to Alex, thanks!]
Take note that for mod_rewrite v2.4 and above, you simply use
LogLevel alert rewrite:trace6
And this will update the log file in
/var/log/apache2/error.log
My problem was that I was not accounting for other requests to files that don't actually exist that were also being redirected to the web root, like
/favicon.ico
The lesson here is to be certain to account for all requests being proxied back to the application server, otherwise it will simply execute the root request for each URI that is directed to the application.
Alex was correct in referring me to utilizing the logging for mod_rewrite. [hat tip to Alex, thanks!]
Take note that for mod_rewrite v2.4 and above, you simply use
LogLevel alert rewrite:trace6
And this will update the log file in
/var/log/apache2/error.log
My problem was that I was not accounting for other requests to files that don't actually exist that were also being redirected to the web root, like
/favicon.ico
The lesson here is to be certain to account for all requests being proxied back to the application server, otherwise it will simply execute the root request for each URI that is directed to the application.
answered Nov 20 '18 at 5:11
Code MonkeyCode Monkey
265
265
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53348583%2fmod-rewrite-is-sending-multiple-requests-back-to-lucee-server%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
3
Start with logging the rewrite and go from there.
– Alex
Nov 17 '18 at 21:38