Sure. No problem. This should show how adding a leading slash is breaking the last RewriteRule. It would be harder to reproduce Incompatibility #2 as I don't have the FCGI daemon any more, as I'm using an HTTP application server now instead. However, if you need, I could circumvent the #1 incompatibility adding a leading slash to the last RewriteRule to see what happens with the mod_proxy_fcgi RewriteRule.
However, as for now, incompatibility #1 (domain redacted with "example.com"): == Non-working == Configuration for reference: RewriteEngine On RewriteRule ^/cgi-bin/503_cgi/503_cgi.py$ "unix:/run/instance_starter-cgi-instance_starter/socket|fcgi:/home/instance_starter/503_cgi/503_cgi.py" [QSA,P,L,NE] RewriteCond %{HTTP_HOST} ^([^.]+)\.${APACHE_RP_DOMAIN}(:[0-9]+)?$ RewriteRule ^(.+) %{HTTP_HOST}$1 [C] RewriteRule ^([^.]+)\.${APACHE_RP_DOMAIN}(:[0-9]+)?(.*)$ "http://$1:8000$3" [P,L] Apache error log with LogLevel rewrite:trace3: [Mon Jul 22 14:22:33.089889 2024] [rewrite:trace2] [pid 122148:tid 140373984781888] mod_rewrite.c(491): [client 192.168.80.12:52434] 192.168.80.12 - - [asd.example.com/sid#7fab670e8940][rid#7fab672330a0/initial] init rewrite engine with requested uri / [Mon Jul 22 14:22:33.089979 2024] [rewrite:trace3] [pid 122148:tid 140373984781888] mod_rewrite.c(491): [client 192.168.80.12:52434] 192.168.80.12 - - [asd.example.com/sid#7fab670e8940][rid#7fab672330a0/initial] applying pattern '^/cgi-bin/503_cgi/503_cgi.py$' to uri '/' [Mon Jul 22 14:22:33.089995 2024] [rewrite:trace3] [pid 122148:tid 140373984781888] mod_rewrite.c(491): [client 192.168.80.12:52434] 192.168.80.12 - - [asd.example.com/sid#7fab670e8940][rid#7fab672330a0/initial] applying pattern '^(.+)' to uri '/' [Mon Jul 22 14:22:33.090014 2024] [rewrite:trace2] [pid 122148:tid 140373984781888] mod_rewrite.c(491): [client 192.168.80.12:52434] 192.168.80.12 - - [asd.example.com/sid#7fab670e8940][rid#7fab672330a0/initial] rewrite '/' -> 'asd.example.com/' [Mon Jul 22 14:22:33.090021 2024] [rewrite:trace3] [pid 122148:tid 140373984781888] mod_rewrite.c(491): [client 192.168.80.12:52434] 192.168.80.12 - - [asd.example.com/sid#7fab670e8940][rid#7fab672330a0/initial] add root prefix: asd.example.com/ -> /asd.example.com/ [Mon Jul 22 14:22:33.090027 2024] [rewrite:trace2] [pid 122148:tid 140373984781888] mod_rewrite.c(491): [client 192.168.80.12:52434] 192.168.80.12 - - [asd.example.com/sid#7fab670e8940][rid#7fab672330a0/initial] setting lastsub to rule with output %{HTTP_HOST}$1 [Mon Jul 22 14:22:33.090033 2024] [rewrite:trace3] [pid 122148:tid 140373984781888] mod_rewrite.c(491): [client 192.168.80.12:52434] 192.168.80.12 - - [asd.example.com/sid#7fab670e8940][rid#7fab672330a0/initial] applying pattern '^([^.]+)\\.example.com(:[0-9]+)?(.*)$' to uri '/asd.example.com/' [Mon Jul 22 14:22:33.090043 2024] [rewrite:trace2] [pid 122148:tid 140373984781888] mod_rewrite.c(491): [client 192.168.80.12:52434] 192.168.80.12 - - [asd.example.com/sid#7fab670e8940][rid#7fab672330a0/initial] rewrite '/asd.example.com/' -> 'http:///asd:8000/' [Mon Jul 22 14:22:33.090052 2024] [rewrite:trace2] [pid 122148:tid 140373984781888] mod_rewrite.c(491): [client 192.168.80.12:52434] 192.168.80.12 - - [asd.example.com/sid#7fab670e8940][rid#7fab672330a0/initial] forcing proxy-throughput with http:///asd:8000/ [Mon Jul 22 14:22:33.090057 2024] [rewrite:trace2] [pid 122148:tid 140373984781888] mod_rewrite.c(491): [client 192.168.80.12:52434] 192.168.80.12 - - [asd.example.com/sid#7fab670e8940][rid#7fab672330a0/initial] setting lastsub to rule with output http://$1:8000$3 [Mon Jul 22 14:22:33.090063 2024] [rewrite:trace1] [pid 122148:tid 140373984781888] mod_rewrite.c(491): [client 192.168.80.12:52434] 192.168.80.12 - - [asd.example.com/sid#7fab670e8940][rid#7fab672330a0/initial] go-ahead with proxy request proxy:http:///asd:8000/ [OK] [Mon Jul 22 14:22:33.090119 2024] [proxy_http:error] [pid 122148:tid 140373984781888] [client 192.168.80.12:52434] AH01083: error parsing URL http://: Invalid host/port [Mon Jul 22 14:22:33.363038 2024] [rewrite:trace2] [pid 122149:tid 140373967996480] mod_rewrite.c(491): [client 192.168.80.12:52435] 192.168.80.12 - - [asd.example.com/sid#7fab670e8940][rid#7fab672540a0/initial] init rewrite engine with requested uri /favicon.ico, referer: https://asd.example.com/ [Mon Jul 22 14:22:33.363081 2024] [rewrite:trace3] [pid 122149:tid 140373967996480] mod_rewrite.c(491): [client 192.168.80.12:52435] 192.168.80.12 - - [asd.example.com/sid#7fab670e8940][rid#7fab672540a0/initial] applying pattern '^/cgi-bin/503_cgi/503_cgi.py$' to uri '/favicon.ico', referer: https://asd.example.com/ [Mon Jul 22 14:22:33.363097 2024] [rewrite:trace3] [pid 122149:tid 140373967996480] mod_rewrite.c(491): [client 192.168.80.12:52435] 192.168.80.12 - - [asd.example.com/sid#7fab670e8940][rid#7fab672540a0/initial] applying pattern '^(.+)' to uri '/favicon.ico', referer: https://asd.example.com/ [Mon Jul 22 14:22:33.363115 2024] [rewrite:trace2] [pid 122149:tid 140373967996480] mod_rewrite.c(491): [client 192.168.80.12:52435] 192.168.80.12 - - [asd.example.com/sid#7fab670e8940][rid#7fab672540a0/initial] rewrite '/favicon.ico' -> 'asd.example.com/favicon.ico', referer: https://asd.example.com/ [Mon Jul 22 14:22:33.363140 2024] [rewrite:trace3] [pid 122149:tid 140373967996480] mod_rewrite.c(491): [client 192.168.80.12:52435] 192.168.80.12 - - [asd.example.com/sid#7fab670e8940][rid#7fab672540a0/initial] add root prefix: asd.example.com/favicon.ico -> /asd.example.com/favicon.ico, referer: https://asd.example.com/ [Mon Jul 22 14:22:33.363146 2024] [rewrite:trace2] [pid 122149:tid 140373967996480] mod_rewrite.c(491): [client 192.168.80.12:52435] 192.168.80.12 - - [asd.example.com/sid#7fab670e8940][rid#7fab672540a0/initial] setting lastsub to rule with output %{HTTP_HOST}$1, referer: https://asd.example.com/ [Mon Jul 22 14:22:33.363152 2024] [rewrite:trace3] [pid 122149:tid 140373967996480] mod_rewrite.c(491): [client 192.168.80.12:52435] 192.168.80.12 - - [asd.example.com/sid#7fab670e8940][rid#7fab672540a0/initial] applying pattern '^([^.]+)\\.example.com(:[0-9]+)?(.*)$' to uri '/asd.example.com/favicon.ico', referer: https://asd.example.com/ [Mon Jul 22 14:22:33.363160 2024] [rewrite:trace2] [pid 122149:tid 140373967996480] mod_rewrite.c(491): [client 192.168.80.12:52435] 192.168.80.12 - - [asd.example.com/sid#7fab670e8940][rid#7fab672540a0/initial] rewrite '/asd.example.com/favicon.ico' -> 'http:///asd:8000/favicon.ico', referer: https://asd.example.com/ [Mon Jul 22 14:22:33.363166 2024] [rewrite:trace2] [pid 122149:tid 140373967996480] mod_rewrite.c(491): [client 192.168.80.12:52435] 192.168.80.12 - - [asd.example.com/sid#7fab670e8940][rid#7fab672540a0/initial] forcing proxy-throughput with http:///asd:8000/favicon.ico, referer: https://asd.example.com/ [Mon Jul 22 14:22:33.363171 2024] [rewrite:trace2] [pid 122149:tid 140373967996480] mod_rewrite.c(491): [client 192.168.80.12:52435] 192.168.80.12 - - [asd.example.com/sid#7fab670e8940][rid#7fab672540a0/initial] setting lastsub to rule with output http://$1:8000$3, referer: https://asd.example.com/ [Mon Jul 22 14:22:33.363177 2024] [rewrite:trace1] [pid 122149:tid 140373967996480] mod_rewrite.c(491): [client 192.168.80.12:52435] 192.168.80.12 - - [asd.example.com/sid#7fab670e8940][rid#7fab672540a0/initial] go-ahead with proxy request proxy:http:///asd:8000/favicon.ico [OK], referer: https://asd.example.com/ [Mon Jul 22 14:22:33.363235 2024] [proxy_http:error] [pid 122149:tid 140373967996480] [client 192.168.80.12:52435] AH01083: error parsing URL http://: Invalid host/port, referer: https://asd.example.com/ == Working == Configuration for reference: RewriteEngine On RewriteRule ^/cgi-bin/503_cgi/503_cgi.py$ "unix:/run/instance_starter-gunicorn-503_cgi/socket|http://%{HTTP_HOST}/$1" [QSA,L,NE,P] RewriteCond %{HTTP_HOST} ^([^.]+)\.${APACHE_RP_DOMAIN}(:[0-9]+)?$ RewriteRule ^(.+) %{HTTP_HOST}$1 [C] RewriteRule ^/([^.]+)\.${APACHE_RP_DOMAIN}(:[0-9]+)?(.*)$ "http://$1:8000$3" [P,L] Apache error log with LogLevel rewrite:trace3: [Mon Jul 22 14:27:33.288577 2024] [rewrite:trace2] [pid 122223:tid 140373909247552] mod_rewrite.c(491): [client 192.168.80.12:52537] 192.168.80.12 - - [asd.example.com/sid#7fab6a46b920][rid#7fab6728a0a0/initial] init rewrite engine with requested uri / [Mon Jul 22 14:27:33.288943 2024] [rewrite:trace3] [pid 122223:tid 140373909247552] mod_rewrite.c(491): [client 192.168.80.12:52537] 192.168.80.12 - - [asd.example.com/sid#7fab6a46b920][rid#7fab6728a0a0/initial] applying pattern '^/cgi-bin/503_cgi/503_cgi.py$' to uri '/' [Mon Jul 22 14:27:33.289078 2024] [rewrite:trace3] [pid 122223:tid 140373909247552] mod_rewrite.c(491): [client 192.168.80.12:52537] 192.168.80.12 - - [asd.example.com/sid#7fab6a46b920][rid#7fab6728a0a0/initial] applying pattern '^(.+)' to uri '/' [Mon Jul 22 14:27:33.289183 2024] [rewrite:trace2] [pid 122223:tid 140373909247552] mod_rewrite.c(491): [client 192.168.80.12:52537] 192.168.80.12 - - [asd.example.com/sid#7fab6a46b920][rid#7fab6728a0a0/initial] rewrite '/' -> 'asd.example.com/' [Mon Jul 22 14:27:33.289275 2024] [rewrite:trace3] [pid 122223:tid 140373909247552] mod_rewrite.c(491): [client 192.168.80.12:52537] 192.168.80.12 - - [asd.example.com/sid#7fab6a46b920][rid#7fab6728a0a0/initial] add root prefix: asd.example.com/ -> /asd.example.com/ [Mon Jul 22 14:27:33.289363 2024] [rewrite:trace2] [pid 122223:tid 140373909247552] mod_rewrite.c(491): [client 192.168.80.12:52537] 192.168.80.12 - - [asd.example.com/sid#7fab6a46b920][rid#7fab6728a0a0/initial] setting lastsub to rule with output %{HTTP_HOST}$1 [Mon Jul 22 14:27:33.289480 2024] [rewrite:trace3] [pid 122223:tid 140373909247552] mod_rewrite.c(491): [client 192.168.80.12:52537] 192.168.80.12 - - [asd.example.com/sid#7fab6a46b920][rid#7fab6728a0a0/initial] applying pattern '^/([^.]+)\\.example.com(:[0-9]+)?(.*)$' to uri '/asd.example.com/' [Mon Jul 22 14:27:33.289569 2024] [rewrite:trace2] [pid 122223:tid 140373909247552] mod_rewrite.c(491): [client 192.168.80.12:52537] 192.168.80.12 - - [asd.example.com/sid#7fab6a46b920][rid#7fab6728a0a0/initial] rewrite '/asd.example.com/' -> 'http://asd:8000/' [Mon Jul 22 14:27:33.289658 2024] [rewrite:trace2] [pid 122223:tid 140373909247552] mod_rewrite.c(491): [client 192.168.80.12:52537] 192.168.80.12 - - [asd.example.com/sid#7fab6a46b920][rid#7fab6728a0a0/initial] forcing proxy-throughput with http://asd:8000/ [Mon Jul 22 14:27:33.289739 2024] [rewrite:trace2] [pid 122223:tid 140373909247552] mod_rewrite.c(491): [client 192.168.80.12:52537] 192.168.80.12 - - [asd.example.com/sid#7fab6a46b920][rid#7fab6728a0a0/initial] setting lastsub to rule with output http://$1:8000$3 [Mon Jul 22 14:27:33.289821 2024] [rewrite:trace1] [pid 122223:tid 140373909247552] mod_rewrite.c(491): [client 192.168.80.12:52537] 192.168.80.12 - - [asd.example.com/sid#7fab6a46b920][rid#7fab6728a0a0/initial] go-ahead with proxy request proxy:http://asd:8000/ [OK] [Mon Jul 22 14:27:33.309268 2024] [proxy:error] [pid 122223:tid 140373909247552] [client 192.168.80.12:52537] AH00898: DNS lookup failure for: asd returned by / [Mon Jul 22 14:27:33.309668 2024] [rewrite:trace2] [pid 122223:tid 140373909247552] mod_rewrite.c(491): [client 192.168.80.12:52537] 192.168.80.12 - - [asd.example.com/sid#7fab6a46b920][rid#7fab6727ef30/initial/redir#1] init rewrite engine with requested uri /cgi-bin/503_cgi/503_cgi.py [Mon Jul 22 14:27:33.309806 2024] [rewrite:trace3] [pid 122223:tid 140373909247552] mod_rewrite.c(491): [client 192.168.80.12:52537] 192.168.80.12 - - [asd.example.com/sid#7fab6a46b920][rid#7fab6727ef30/initial/redir#1] applying pattern '^/cgi-bin/503_cgi/503_cgi.py$' to uri '/cgi-bin/503_cgi/503_cgi.py' [Mon Jul 22 14:27:33.309922 2024] [rewrite:trace2] [pid 122223:tid 140373909247552] mod_rewrite.c(491): [client 192.168.80.12:52537] 192.168.80.12 - - [asd.example.com/sid#7fab6a46b920][rid#7fab6727ef30/initial/redir#1] rewrite '/cgi-bin/503_cgi/503_cgi.py' -> 'unix:/run/instance_starter-gunicorn-503_cgi/socket|http://asd.example.com/' [Mon Jul 22 14:27:33.310018 2024] [rewrite:trace2] [pid 122223:tid 140373909247552] mod_rewrite.c(491): [client 192.168.80.12:52537] 192.168.80.12 - - [asd.example.com/sid#7fab6a46b920][rid#7fab6727ef30/initial/redir#1] forcing proxy-throughput with unix:/run/instance_starter-gunicorn-503_cgi/socket|http://asd.example.com/ [Mon Jul 22 14:27:33.310112 2024] [rewrite:trace2] [pid 122223:tid 140373909247552] mod_rewrite.c(491): [client 192.168.80.12:52537] 192.168.80.12 - - [asd.example.com/sid#7fab6a46b920][rid#7fab6727ef30/initial/redir#1] setting lastsub to rule with output unix:/run/instance_starter-gunicorn-503_cgi/socket|http://%{HTTP_HOST}/$1 [Mon Jul 22 14:27:33.310195 2024] [rewrite:trace1] [pid 122223:tid 140373909247552] mod_rewrite.c(491): [client 192.168.80.12:52537] 192.168.80.12 - - [asd.example.com/sid#7fab6a46b920][rid#7fab6727ef30/initial/redir#1] go-ahead with proxy request proxy:unix:/run/instance_starter-gunicorn-503_cgi/socket|http://asd.example.com/ [OK] -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2073515 Title: functionality loss in mod_proxy rewritten path To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/apache2/+bug/2073515/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs