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