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

Reply via email to