Re: Stripping query string except from specific URL

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On Wed, Apr 24, 2024 at 4:58 PM Dave Wreski <dwreski@xxxxxxxxxxxxxxxxxxx.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] 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






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. 

[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux