On Fri, Jun 22, 2018 at 12:08:07AM +0200, Mischa wrote: > Hi tech@, > > Changed httpd.conf.5 to be more consistent with IPs used, all documentation > IPs now. > And added a couple of examples. 2 for dyamic pages, cgi and php. > One fairly common used rewrite rule for things like wordpress. > > Mischa >
hi. the diff reads ok to me, but i cannot easily verify it because it does not apply cleanly. reyk? jmc > Index: httpd.conf.5 > =================================================================== > RCS file: /cvs/src/usr.sbin/httpd/httpd.conf.5,v > retrieving revision 1.100 > diff -u -p -r1.100 httpd.conf.5 > --- httpd.conf.5 18 Jun 2018 06:04:25 -0000 1.100 > +++ httpd.conf.5 21 Jun 2018 21:55:38 -0000 > @@ -97,7 +97,7 @@ Macros are not expanded inside quotes. > .Pp > For example: > .Bd -literal -offset indent > -ext_ip="10.0.0.1" > +ext_ip="203.0.113.1" > server "default" { > listen on $ext_ip port 80 > } > @@ -198,6 +198,8 @@ argument can be used with return codes i > .Sq Location: > header for redirection to a specified URI. > .Pp > +It is possible to rewrite the request to redirect it to a different > +external location. > The > .Ar uri > may contain predefined macros that will be expanded at runtime: > @@ -396,10 +398,10 @@ the > using pattern matching instead of shell globbing rules, > see > .Xr patterns 7 . > -The pattern may contain captures that can be used in the > -.Ar uri > -of an enclosed > +The pattern may contain captures that can be used in an enclosed > .Ic block return > +or > +.Ic request rewrite > option. > .It Oo Ic no Oc Ic log Op Ar option > Set the specified logging options. > @@ -462,6 +464,19 @@ in a location. > Configure the options for the request path. > Valid options are: > .Bl -tag -width Ds > +.It Oo Ic no Oc Ic rewrite Ar path > +Enable or disable rewriting of the request. > +Unlike the redirection with > +.Ic block return , > +this will change the request path internally before > +.Nm httpd > +makes a final decision about the matching location. > +The > +.Ar path > +argument may contain predefined macros that will be expanded at runtime. > +See the > +.Ic block return > +option for the list of supported macros. > .It Ic strip Ar number > Strip > .Ar number > @@ -699,7 +714,7 @@ server "www.b.example.com" { > } > > server "intranet.example.com" { > - listen on 10.0.0.1 port 80 > + listen on 192.0.2.1 port 80 > root "/htdocs/intranet.example.com" > } > .Ed > @@ -709,12 +724,43 @@ Simple redirections can be configured wi > directive: > .Bd -literal -offset indent > server "example.com" { > - listen on 10.0.0.1 port 80 > + listen on 203.0.113.1 port 80 > block return 301 "http://www.example.com$REQUEST_URI" > } > > server "www.example.com" { > - listen on 10.0.0.1 port 80 > + listen on 203.0.113.1 port 80 > +} > +.Ed > +.Pp > +Serving dynamic pages can be defined with the > +.Ic location > +directive: > +.Bd -literal -offset indent > +server "www.example.com" { > + listen on * port 80 > + location "/*.cgi*" { > + fastcgi > + root "/cgi-bin/" > + } > + location "/*.php*" { > + fastcgi socket "/run/php-fpm.sock" > + } > +} > +.Ed > +.Pp > +The request can also be rewritten with the > +.Ic request rewrite > +directive: > +.Bd -literal -offset indent > +server "www.example.com" { > + listen on * port 80 > + location match "/old/(.*)" { > + request rewrite "/new/%1" > + } > + location match "/([%a%d]+)" { > + request rewrite "/dynamic/index.php?q=%1" > + } > } > .Ed > .Sh SEE ALSO >