Re: svn commit: r1906618 - /httpd/httpd/branches/2.2.x/docs/manual/rewrite/intro.xml
On Thu, 2023-01-12 at 16:30 +0100, Ruediger Pluem wrote: > > $ wget http://localhost/games > > /home/rbowen/devel/presentations/puzzles is a directory, correct? > If yes, you get a redirect by mod_dir > Try making puzzles a file. > > > > > It looks like it works as intended, but then for some reason, a > > separate second request is initiated, with the trailing slash > > added. I > > am not sure why that's happening. > > > > But with curl: > > > > $ curl http://localhost/games > > > > I get the desired/expected: > > Add '-L' to your curl command and the behavior will be the same as > with wget. > curl does not follow redirects by default wget does. Thanks. Brain cramp resolved. I was treating the target of the RewriteRule as a file path, when it was, in fact, an (incomplete) URL. Thanks. Clearly I've been away from the wizardry of mod_rewrite for a little too long. --Rich
Re: svn commit: r1906618 - /httpd/httpd/branches/2.2.x/docs/manual/rewrite/intro.xml
On 1/12/23 4:23 PM, rbo...@rcbowen.com wrote: > On Thu, 2023-01-12 at 09:59 -0500, rbo...@rcbowen.com wrote: >> >> I'll dig deeper on this. >> > > What I'm seeing is not making much sense to me. > > With: > > RewriteRule "^/games$" "/puzzles" > > I'm getting the following behavior: > >>> > [Thu Jan 12 10:12:26.174426 2023] [rewrite:trace2] [pid 615418:tid > 615494] mod_rewrite.c(486): [client ::1:44536] ::1 - - > [localhost/sid#564e6de96770][rid#7efe04004c30/initial] init rewrite > engine with requested uri /games > [Thu Jan 12 10:12:26.174523 2023] [rewrite:trace3] [pid 615418:tid > 615494] mod_rewrite.c(486): [client ::1:44536] ::1 - - > [localhost/sid#564e6de96770][rid#7efe04004c30/initial] applying pattern > '^/games$' to uri '/games' > [Thu Jan 12 10:12:26.174575 2023] [rewrite:trace2] [pid 615418:tid > 615494] mod_rewrite.c(486): [client ::1:44536] ::1 - - > [localhost/sid#564e6de96770][rid#7efe04004c30/initial] rewrite '/games' > -> '/puzzles' > [Thu Jan 12 10:12:26.174606 2023] [rewrite:trace2] [pid 615418:tid > 615494] mod_rewrite.c(486): [client ::1:44536] ::1 - - > [localhost/sid#564e6de96770][rid#7efe04004c30/initial] local path > result: /puzzles > [Thu Jan 12 10:12:26.174645 2023] [rewrite:trace2] [pid 615418:tid > 615494] mod_rewrite.c(486): [client ::1:44536] ::1 - - > [localhost/sid#564e6de96770][rid#7efe04004c30/initial] prefixed with > document_root to /home/rbowen/devel/presentations/puzzles > [Thu Jan 12 10:12:26.174673 2023] [rewrite:trace1] [pid 615418:tid > 615494] mod_rewrite.c(486): [client ::1:44536] ::1 - - > [localhost/sid#564e6de96770][rid#7efe04004c30/initial] go-ahead with > /home/rbowen/devel/presentations/puzzles [OK] > > [Thu Jan 12 10:12:26.175644 2023] [rewrite:trace2] [pid 615418:tid > 615497] mod_rewrite.c(486): [client ::1:44536] ::1 - - > [localhost/sid#564e6de96770][rid#7efe04002c20/initial] init rewrite > engine with requested uri /games/ > [Thu Jan 12 10:12:26.175725 2023] [rewrite:trace3] [pid 615418:tid > 615497] mod_rewrite.c(486): [client ::1:44536] ::1 - - > [localhost/sid#564e6de96770][rid#7efe04002c20/initial] applying pattern > '^/games$' to uri '/games/' > [Thu Jan 12 10:12:26.175768 2023] [rewrite:trace1] [pid 615418:tid > 615497] mod_rewrite.c(486): [client ::1:44536] ::1 - - > [localhost/sid#564e6de96770][rid#7efe04002c20/initial] pass through > /games/ > << > > Line break added for clarity. That's where things get confusing. > > This is with wget, so any "browser geting smart" behavior hopefully > removed. > > $ wget http://localhost/games /home/rbowen/devel/presentations/puzzles is a directory, correct? If yes, you get a redirect by mod_dir Try making puzzles a file. > > It looks like it works as intended, but then for some reason, a > separate second request is initiated, with the trailing slash added. I > am not sure why that's happening. > > But with curl: > > $ curl http://localhost/games > > I get the desired/expected: Add '-L' to your curl command and the behavior will be the same as with wget. curl does not follow redirects by default wget does. Regards RĂ¼diger
Re: svn commit: r1906618 - /httpd/httpd/branches/2.2.x/docs/manual/rewrite/intro.xml
DirectorySlash from mod_dir. Maybe with [PT] it would redirect to /puzzles/ (if it's on disk) or skip it. On Thu, Jan 12, 2023 at 10:23 AM wrote: > > On Thu, 2023-01-12 at 09:59 -0500, rbo...@rcbowen.com wrote: > > > > I'll dig deeper on this. > > > > What I'm seeing is not making much sense to me. > > With: > > RewriteRule "^/games$" "/puzzles" > > I'm getting the following behavior: > > >> > [Thu Jan 12 10:12:26.174426 2023] [rewrite:trace2] [pid 615418:tid > 615494] mod_rewrite.c(486): [client ::1:44536] ::1 - - > [localhost/sid#564e6de96770][rid#7efe04004c30/initial] init rewrite > engine with requested uri /games > [Thu Jan 12 10:12:26.174523 2023] [rewrite:trace3] [pid 615418:tid > 615494] mod_rewrite.c(486): [client ::1:44536] ::1 - - > [localhost/sid#564e6de96770][rid#7efe04004c30/initial] applying pattern > '^/games$' to uri '/games' > [Thu Jan 12 10:12:26.174575 2023] [rewrite:trace2] [pid 615418:tid > 615494] mod_rewrite.c(486): [client ::1:44536] ::1 - - > [localhost/sid#564e6de96770][rid#7efe04004c30/initial] rewrite '/games' > -> '/puzzles' > [Thu Jan 12 10:12:26.174606 2023] [rewrite:trace2] [pid 615418:tid > 615494] mod_rewrite.c(486): [client ::1:44536] ::1 - - > [localhost/sid#564e6de96770][rid#7efe04004c30/initial] local path > result: /puzzles > [Thu Jan 12 10:12:26.174645 2023] [rewrite:trace2] [pid 615418:tid > 615494] mod_rewrite.c(486): [client ::1:44536] ::1 - - > [localhost/sid#564e6de96770][rid#7efe04004c30/initial] prefixed with > document_root to /home/rbowen/devel/presentations/puzzles > [Thu Jan 12 10:12:26.174673 2023] [rewrite:trace1] [pid 615418:tid > 615494] mod_rewrite.c(486): [client ::1:44536] ::1 - - > [localhost/sid#564e6de96770][rid#7efe04004c30/initial] go-ahead with > /home/rbowen/devel/presentations/puzzles [OK] > > [Thu Jan 12 10:12:26.175644 2023] [rewrite:trace2] [pid 615418:tid > 615497] mod_rewrite.c(486): [client ::1:44536] ::1 - - > [localhost/sid#564e6de96770][rid#7efe04002c20/initial] init rewrite > engine with requested uri /games/ > [Thu Jan 12 10:12:26.175725 2023] [rewrite:trace3] [pid 615418:tid > 615497] mod_rewrite.c(486): [client ::1:44536] ::1 - - > [localhost/sid#564e6de96770][rid#7efe04002c20/initial] applying pattern > '^/games$' to uri '/games/' > [Thu Jan 12 10:12:26.175768 2023] [rewrite:trace1] [pid 615418:tid > 615497] mod_rewrite.c(486): [client ::1:44536] ::1 - - > [localhost/sid#564e6de96770][rid#7efe04002c20/initial] pass through > /games/ > << > > Line break added for clarity. That's where things get confusing. > > This is with wget, so any "browser geting smart" behavior hopefully > removed. > > $ wget http://localhost/games > > It looks like it works as intended, but then for some reason, a > separate second request is initiated, with the trailing slash added. I > am not sure why that's happening. > > But with curl: > > $ curl http://localhost/games > > I get the desired/expected: > > > [Thu Jan 12 10:17:54.208145 2023] [rewrite:trace2] [pid 615420:tid > 615581] mod_rewrite.c(486): [client 127.0.0.1:47176] 127.0.0.1 - - > [localhost/sid#564e6de96770][rid#7efe1000cd70/initial] init rewrite > engine with requested uri /games > [Thu Jan 12 10:17:54.208172 2023] [rewrite:trace3] [pid 615420:tid > 615581] mod_rewrite.c(486): [client 127.0.0.1:47176] 127.0.0.1 - - > [localhost/sid#564e6de96770][rid#7efe1000cd70/initial] applying pattern > '^/games$' to uri '/games' > [Thu Jan 12 10:17:54.208188 2023] [rewrite:trace2] [pid 615420:tid > 615581] mod_rewrite.c(486): [client 127.0.0.1:47176] 127.0.0.1 - - > [localhost/sid#564e6de96770][rid#7efe1000cd70/initial] rewrite '/games' > -> '/puzzles' > [Thu Jan 12 10:17:54.208202 2023] [rewrite:trace2] [pid 615420:tid > 615581] mod_rewrite.c(486): [client 127.0.0.1:47176] 127.0.0.1 - - > [localhost/sid#564e6de96770][rid#7efe1000cd70/initial] local path > result: /puzzles > [Thu Jan 12 10:17:54.208213 2023] [rewrite:trace2] [pid 615420:tid > 615581] mod_rewrite.c(486): [client 127.0.0.1:47176] 127.0.0.1 - - > [localhost/sid#564e6de96770][rid#7efe1000cd70/initial] prefixed with > document_root to /home/rbowen/devel/presentations/puzzles > [Thu Jan 12 10:17:54.208220 2023] [rewrite:trace1] [pid 615420:tid > 615581] mod_rewrite.c(486): [client 127.0.0.1:47176] 127.0.0.1 - - > [localhost/sid#564e6de96770][rid#7efe1000cd70/initial] go-ahead with > /home/rbowen/devel/presentations/puzzles [OK] > > But the actual response returned to the cli is: > > $ curl -v http://localhost/games > * Trying 127.0.0.1:80... > * Connected to localhost (127.0.0.1) port 80 (#0) > > GET /games HTTP/1.1 > > Host: localhost > > User-Agent: curl/7.85.0 > > Accept: */* > > > * Mark bundle as not supporting multiuse > < HTTP/1.1 301 Moved Permanently > < Date: Thu, 12 Jan 2023 15:20:59 GMT > < Server: Apache/2.4.54 (Fedora Linux) > < Location: http://localhost/games/ > < Content-Length: 231 > < Content-Type: text/html; charset=iso-8859-1 > < > > > 301 Moved Permanently > > Moved Permanently > The document has moved
Re: svn commit: r1906618 - /httpd/httpd/branches/2.2.x/docs/manual/rewrite/intro.xml
On Thu, 2023-01-12 at 09:59 -0500, rbo...@rcbowen.com wrote: > > I'll dig deeper on this. > What I'm seeing is not making much sense to me. With: RewriteRule "^/games$" "/puzzles" I'm getting the following behavior: >> [Thu Jan 12 10:12:26.174426 2023] [rewrite:trace2] [pid 615418:tid 615494] mod_rewrite.c(486): [client ::1:44536] ::1 - - [localhost/sid#564e6de96770][rid#7efe04004c30/initial] init rewrite engine with requested uri /games [Thu Jan 12 10:12:26.174523 2023] [rewrite:trace3] [pid 615418:tid 615494] mod_rewrite.c(486): [client ::1:44536] ::1 - - [localhost/sid#564e6de96770][rid#7efe04004c30/initial] applying pattern '^/games$' to uri '/games' [Thu Jan 12 10:12:26.174575 2023] [rewrite:trace2] [pid 615418:tid 615494] mod_rewrite.c(486): [client ::1:44536] ::1 - - [localhost/sid#564e6de96770][rid#7efe04004c30/initial] rewrite '/games' -> '/puzzles' [Thu Jan 12 10:12:26.174606 2023] [rewrite:trace2] [pid 615418:tid 615494] mod_rewrite.c(486): [client ::1:44536] ::1 - - [localhost/sid#564e6de96770][rid#7efe04004c30/initial] local path result: /puzzles [Thu Jan 12 10:12:26.174645 2023] [rewrite:trace2] [pid 615418:tid 615494] mod_rewrite.c(486): [client ::1:44536] ::1 - - [localhost/sid#564e6de96770][rid#7efe04004c30/initial] prefixed with document_root to /home/rbowen/devel/presentations/puzzles [Thu Jan 12 10:12:26.174673 2023] [rewrite:trace1] [pid 615418:tid 615494] mod_rewrite.c(486): [client ::1:44536] ::1 - - [localhost/sid#564e6de96770][rid#7efe04004c30/initial] go-ahead with /home/rbowen/devel/presentations/puzzles [OK] [Thu Jan 12 10:12:26.175644 2023] [rewrite:trace2] [pid 615418:tid 615497] mod_rewrite.c(486): [client ::1:44536] ::1 - - [localhost/sid#564e6de96770][rid#7efe04002c20/initial] init rewrite engine with requested uri /games/ [Thu Jan 12 10:12:26.175725 2023] [rewrite:trace3] [pid 615418:tid 615497] mod_rewrite.c(486): [client ::1:44536] ::1 - - [localhost/sid#564e6de96770][rid#7efe04002c20/initial] applying pattern '^/games$' to uri '/games/' [Thu Jan 12 10:12:26.175768 2023] [rewrite:trace1] [pid 615418:tid 615497] mod_rewrite.c(486): [client ::1:44536] ::1 - - [localhost/sid#564e6de96770][rid#7efe04002c20/initial] pass through /games/ << Line break added for clarity. That's where things get confusing. This is with wget, so any "browser geting smart" behavior hopefully removed. $ wget http://localhost/games It looks like it works as intended, but then for some reason, a separate second request is initiated, with the trailing slash added. I am not sure why that's happening. But with curl: $ curl http://localhost/games I get the desired/expected: [Thu Jan 12 10:17:54.208145 2023] [rewrite:trace2] [pid 615420:tid 615581] mod_rewrite.c(486): [client 127.0.0.1:47176] 127.0.0.1 - - [localhost/sid#564e6de96770][rid#7efe1000cd70/initial] init rewrite engine with requested uri /games [Thu Jan 12 10:17:54.208172 2023] [rewrite:trace3] [pid 615420:tid 615581] mod_rewrite.c(486): [client 127.0.0.1:47176] 127.0.0.1 - - [localhost/sid#564e6de96770][rid#7efe1000cd70/initial] applying pattern '^/games$' to uri '/games' [Thu Jan 12 10:17:54.208188 2023] [rewrite:trace2] [pid 615420:tid 615581] mod_rewrite.c(486): [client 127.0.0.1:47176] 127.0.0.1 - - [localhost/sid#564e6de96770][rid#7efe1000cd70/initial] rewrite '/games' -> '/puzzles' [Thu Jan 12 10:17:54.208202 2023] [rewrite:trace2] [pid 615420:tid 615581] mod_rewrite.c(486): [client 127.0.0.1:47176] 127.0.0.1 - - [localhost/sid#564e6de96770][rid#7efe1000cd70/initial] local path result: /puzzles [Thu Jan 12 10:17:54.208213 2023] [rewrite:trace2] [pid 615420:tid 615581] mod_rewrite.c(486): [client 127.0.0.1:47176] 127.0.0.1 - - [localhost/sid#564e6de96770][rid#7efe1000cd70/initial] prefixed with document_root to /home/rbowen/devel/presentations/puzzles [Thu Jan 12 10:17:54.208220 2023] [rewrite:trace1] [pid 615420:tid 615581] mod_rewrite.c(486): [client 127.0.0.1:47176] 127.0.0.1 - - [localhost/sid#564e6de96770][rid#7efe1000cd70/initial] go-ahead with /home/rbowen/devel/presentations/puzzles [OK] But the actual response returned to the cli is: $ curl -v http://localhost/games * Trying 127.0.0.1:80... * Connected to localhost (127.0.0.1) port 80 (#0) > GET /games HTTP/1.1 > Host: localhost > User-Agent: curl/7.85.0 > Accept: */* > * Mark bundle as not supporting multiuse < HTTP/1.1 301 Moved Permanently < Date: Thu, 12 Jan 2023 15:20:59 GMT < Server: Apache/2.4.54 (Fedora Linux) < Location: http://localhost/games/ < Content-Length: 231 < Content-Type: text/html; charset=iso-8859-1 < 301 Moved Permanently Moved Permanently The document has moved http://localhost/games/;>here. What's going on here?
Re: svn commit: r1906618 - /httpd/httpd/branches/2.2.x/docs/manual/rewrite/intro.xml
On Wed, 2023-01-11 at 19:36 -0800, Roy T. Fielding wrote: > I am pretty sure that this change makes the example incorrect. > > That regex is not supposed to match "/foo/" (even if one might > want to do that for directory examples, this particular example > is not about directories). /foo is the whole path. > > If a directory example is desired, perhaps a new example would > be better? Perhaps. I tested the example that was in the doc previously, and it failed - but I think it was because the browser tried to get clever, and appended a "/" I'll dig deeper on this.
Re: svn commit: r1906618 - /httpd/httpd/branches/2.2.x/docs/manual/rewrite/intro.xml
I am pretty sure that this change makes the example incorrect. That regex is not supposed to match "/foo/" (even if one might want to do that for directory examples, this particular example is not about directories). /foo is the whole path. If a directory example is desired, perhaps a new example would be better? Roy > On Jan 11, 2023, at 12:13 PM, rbo...@apache.org wrote: > > Author: rbowen > Date: Wed Jan 11 20:13:31 2023 > New Revision: 1906618 > > URL: http://svn.apache.org/viewvc?rev=1906618=rev > Log: > Fixes example to actually work. > > Modified: >httpd/httpd/branches/2.2.x/docs/manual/rewrite/intro.xml > > Modified: httpd/httpd/branches/2.2.x/docs/manual/rewrite/intro.xml > URL: > http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/docs/manual/rewrite/intro.xml?rev=1906618=1906617=1906618=diff > == > --- httpd/httpd/branches/2.2.x/docs/manual/rewrite/intro.xml (original) > +++ httpd/httpd/branches/2.2.x/docs/manual/rewrite/intro.xml Wed Jan 11 > 20:13:31 2023 > @@ -205,7 +205,7 @@ like the A > 2. A web-path to a resource > > > -RewriteRule ^/foo$ /bar > +RewriteRule ^/foo/?$ /bar > > If DocumentRoot is set > to /usr/local/apache2/htdocs, then this directive would > >