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
|