On Wed, Apr 24, 2024 at 4:58 PM Dave Wreski <dwre...@guardiandigital.com.invalid> wrote:
> Hi, > > We have a situation where we need to strip a query string from all URLs >>> except ones matching a particular pattern. However, when I try the rules >>> below, it redirects to the homepage for some reason. >>> >>> In this example, I'd like to strip off the query string from all URLs >>> except those involving /resources/blog: >>> >>> RewriteCond %{REQUEST_URI} !/resources/blog >>> RewriteCond %{QUERY_STRING} ^start= >>> RewriteRule (.*) https://guardiandigital.com$1 [L,QSD] >>> >>> What am I missing? >>> >>> Thanks, >>> Dave >>> >>> >>> >> To remove the query string, see the QSD flag, or append a ? at the end of >> the target. >> >> That's what I'm doing, I think. What am I missing? It just redirects to >> the homepage somehow. >> >> Shouldn't I be able to stack RewriteConds in this way, followed by a >> RewriteRule? >> >> I have no idea what could be wrong. >> > > Test with curl, and see if you get redirected after the fact. > > I've enabled trace3 to try and figure this out. But line 8 says > "discarding query string, no parse from substitution" and I don't know why > or what really that means. > > 1 [Wed Apr 24 15:19:36.440500 2024] [rewrite:trace2] [pid 748062:tid > 748212] mod_rewrite.c(493): [client 62.111.193.42:0] 62.111.193.42 - - [ > guardiandigital.com/sid#55743f0bbb58][rid#7f9cd4016af0/initial > <http://guardiandigital.com/sid#55743f0bbb58][rid%237f9cd4016af0/initial>] > init rewrite engine with requested uri /resources/blog > > 2 [Wed Apr 24 15:19:36.445306 2024] [rewrite:trace1] [pid 748062:tid > 748212] mod_rewrite.c(493): [client 62.111.193.42:0] 62.111.193.42 - - [ > guardiandigital.com/sid#55743f0bbb58][rid#7f9cd4016af0/initial > <http://guardiandigital.com/sid#55743f0bbb58][rid%237f9cd4016af0/initial>] > pass through /resources/blog > > 3 [Wed Apr 24 15:19:36.449369 2024] [rewrite:trace3] [pid 748062:tid > 748212] mod_rewrite.c(493): [client 62.111.193.42:0] 62.111.193.42 - - [ > guardiandigital.com/sid#55743f0bbb58][rid#7f9cd4016af0/initial > <http://guardiandigital.com/sid#55743f0bbb58][rid%237f9cd4016af0/initial>] > [perdir /home/docroot/] applying pattern '.*' to uri 'resources/blog' > > 4 [Wed Apr 24 15:19:36.449413 2024] [rewrite:trace2] [pid 748062:tid > 748212] mod_rewrite.c(493): [client 62.111.193.42:0] 62.111.193.42 - - [ > guardiandigital.com/sid#55743f0bbb58][rid#7f9cd4016af0/initial > <http://guardiandigital.com/sid#55743f0bbb58][rid%237f9cd4016af0/initial>] > [perdir /home/docroot/] rewrite 'resources/blog' -> 'index.php' > > 5 [Wed Apr 24 15:19:36.449453 2024] [rewrite:trace1] [pid 748062:tid > 748212] mod_rewrite.c(493): [client 62.111.193.42:0] 62.111.193.42 - - [ > guardiandigital.com/sid#55743f0bbb58][rid#7f9cd4016af0/initial > <http://guardiandigital.com/sid#55743f0bbb58][rid%237f9cd4016af0/initial>] > [perdir /home/docroot/] internal redirect with /index.php [INTERNAL > REDIRECT] > > 6 [Wed Apr 24 15:19:36.449830 2024] [rewrite:trace3] [pid 748062:tid > 748212] mod_rewrite.c(493): [client 62.111.193.42:0] 62.111.193.42 - - [ > guardiandigital.com/sid#55743f0bbb58][rid#7f9ccc0e6000/initial/redir#1 > <http://guardiandigital.com/sid#55743f0bbb58][rid%237f9ccc0e6000/initial/redir%231>] > applying pattern '(.*)' to uri '/index.php' > > 7 [Wed Apr 24 15:19:36.449848 2024] [rewrite:trace2] [pid 748062:tid > 748212] mod_rewrite.c(493): [client 62.111.193.42:0] 62.111.193.42 - - [ > guardiandigital.com/sid#55743f0bbb58][rid#7f9ccc0e6000/initial/redir#1 > <http://guardiandigital.com/sid#55743f0bbb58][rid%237f9ccc0e6000/initial/redir%231>] > rewrite '/index.php' -> 'https://guardiandigital.com/index.php' > > 8 [Wed Apr 24 15:19:36.449857 2024] [rewrite:trace2] [pid 748062:tid > 748212] mod_rewrite.c(493): [client 62.111.193.42:0] 62.111.193.42 - - [ > guardiandigital.com/sid#55743f0bbb58][rid#7f9ccc0e6000/initial/redir#1 > <http://guardiandigital.com/sid#55743f0bbb58][rid%237f9ccc0e6000/initial/redir%231>] > discarding query string, no parse from substitution > > 9 [Wed Apr 24 15:19:36.449864 2024] [rewrite:trace2] [pid 748062:tid > 748212] mod_rewrite.c(493): [client 62.111.193.42:0] 62.111.193.42 - - [ > guardiandigital.com/sid#55743f0bbb58][rid#7f9ccc0e6000/initial/redir#1 > <http://guardiandigital.com/sid#55743f0bbb58][rid%237f9ccc0e6000/initial/redir%231>] > explicitly forcing redirect with https://guardiandigital.com/index.php > > 10 [Wed Apr 24 15:19:36.449871 2024] [rewrite:trace1] [pid 748062:tid > 748212] mod_rewrite.c(493): [client 62.111.193.42:0] 62.111.193.42 - - [ > guardiandigital.com/sid#55743f0bbb58][rid#7f9ccc0e6000/initial/redir#1 > <http://guardiandigital.com/sid#55743f0bbb58][rid%237f9ccc0e6000/initial/redir%231>] > escaping https://guardiandigital.com/index.php for redirect > > 11 [Wed Apr 24 15:19:36.449880 2024] [rewrite:trace1] [pid 748062:tid > 748212] mod_rewrite.c(493): [client 62.111.193.42:0] 62.111.193.42 - - [ > guardiandigital.com/sid#55743f0bbb58][rid#7f9ccc0e6000/initial/redir#1 > <http://guardiandigital.com/sid#55743f0bbb58][rid%237f9ccc0e6000/initial/redir%231>] > redirect to https://guardiandigital.com/index.php [REDIRECT/301] > > 12 62.111.193.42 - - [24/Apr/2024:15:19:36 -0400] "GET > /resources/blog?start=48 HTTP/1.1" 301 245 r:"-" "Wget/1.21.4" > X:"SAMEORIGIN" 0/9647 1183/6254/245 H:HTTP/1.1 U:/resources/blog gd443 s:301 > > ... more checks against our rewrites ... > > 13 62.111.193.42 - - [24/Apr/2024:15:19:36 -0400] "GET /index.php > HTTP/1.1" 200 33921 r:"-" "Wget/1.21.4" X:"SAMEORIGIN" 0/129431 > 573/35481/33921 H:HTTP/1.1 U:/index.php gd443 s:200 > > > > > > It did exactly what you asked, yes. Further, I asked you to use curl to see if you get redirected from https://guardiandigital.com/index.php to another URL, but you seem to have ignored that part of the answer.