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] 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] 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] [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] [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] [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]
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]
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]
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]
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]
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]
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