Bug 65425

Summary: Rewrite with directory with wildcard vs no wildcard
Product: Apache httpd-2 Reporter: lampacz+apache2
Component: mod_rewriteAssignee: Apache HTTPD Bugs Mailing List <bugs>
Status: NEW ---    
Severity: normal    
Priority: P2    
Version: 2.4.38   
Target Milestone: ---   
Hardware: PC   
OS: Linux   

Description lampacz+apache2 2021-07-02 13:46:09 UTC
Is some diference with rewrite with wildcard directory? - "strip per-dir prefix" is not applied

<Directory /home/xxx/www/test/www>
  RewriteEngine On
  RewriteRule ^cache([0-9]+)/(.*)$ /$2 [L,END]
</Directory>

is rewrited to:

2021-07-02 15:21:52.396265 [rewrite:trace3] [pid 23003] mod_rewrite.c(483): [client 127.0.0.1:48632] 127.0.0.1 - - [test.xxx/sid#7fca314cbf38][rid#7fca32e010a0/initial] [perdir /home/xxx/www/test/www/] add path info postfix: /home/xxx/www/test/www/cache1234 -> /home/xxx/www/test/www/cache1234/gen/js/js.js
2021-07-02 15:21:52.396307 [rewrite:trace3] [pid 23003] mod_rewrite.c(483): [client 127.0.0.1:48632] 127.0.0.1 - - [test.xxx/sid#7fca314cbf38][rid#7fca32e010a0/initial] [perdir /home/xxx/www/test/www/] strip per-dir prefix: /home/xxx/www/test/www/cache1234/gen/js/js.js -> cache1234/gen/js/js.js
2021-07-02 15:21:52.396315 [rewrite:trace3] [pid 23003] mod_rewrite.c(483): [client 127.0.0.1:48632] 127.0.0.1 - - [test.xxx/sid#7fca314cbf38][rid#7fca32e010a0/initial] [perdir /home/xxx/www/test/www/] applying pattern '^cache([0-9]+)/(.*)$' to uri 'cache1234/gen/js/js.js'
2021-07-02 15:21:52.396332 [rewrite:trace2] [pid 23003] mod_rewrite.c(483): [client 127.0.0.1:48632] 127.0.0.1 - - [test.xxx/sid#7fca314cbf38][rid#7fca32e010a0/initial] [perdir /home/xxx/www/test/www/] rewrite 'cache1234/gen/js/js.js' -> '/gen/js/js.js'
2021-07-02 15:21:52.396343 [rewrite:trace2] [pid 23003] mod_rewrite.c(483): [client 127.0.0.1:48632] 127.0.0.1 - - [test.xxx/sid#7fca314cbf38][rid#7fca32e010a0/initial] [perdir /home/xxx/www/test/www/] trying to replace context docroot /home/xxx/www/test/www with context prefix 
2021-07-02 15:21:52.396350 [rewrite:trace1] [pid 23003] mod_rewrite.c(483): [client 127.0.0.1:48632] 127.0.0.1 - - [test.xxx/sid#7fca314cbf38][rid#7fca32e010a0/initial] [perdir /home/xxx/www/test/www/] internal redirect with /gen/js/js.js [INTERNAL REDIRECT]

But 

<Directory /home/xxx/www/*/www>
  RewriteEngine On
  RewriteRule ^cache([0-9]+)/(.*)$ /$2 [L,END]
</Directory>

is rewrited to:
2021-07-02 15:37:06.919526 [rewrite:trace3] [pid 24538] mod_rewrite.c(483): [client 127.0.0.1:48710] 127.0.0.1 - - [test.xxx/sid#7f475140ff38][rid#7f47518c00a0/initial] [perdir /home/xxx/www/*/www/] add path info postfix: /home/xxx/www/test/www/cache1234 -> /home/xxx/www/test/www/cache1234/gen/js/js.js
2021-07-02 15:37:06.919571 [rewrite:trace3] [pid 24538] mod_rewrite.c(483): [client 127.0.0.1:48710] 127.0.0.1 - - [test.xxx/sid#7f475140ff38][rid#7f47518c00a0/initial] [perdir /home/xxx/www/*/www/] applying pattern '^cache([0-9]+)/(.*)$' to uri '/home/xxx/www/test/www/cache1234/gen/js/js.js'
2021-07-02 15:37:06.919590 [rewrite:trace1] [pid 24538] mod_rewrite.c(483): [client 127.0.0.1:48710] 127.0.0.1 - - [test.xxx/sid#7f475140ff38][rid#7f47518c00a0/initial] [perdir /home/xxx/www/*/www/] pass through /home/xxx/www/test/www/cache1234

Thus rewrite must be updated to:

<Directory /home/xxx/www/*/www>
  RewriteEngine On
  RewriteRule /cache([0-9]+)/(.*)$ /$2 [L,END]
</Directory>

then is rewrited to:
2021-07-02 15:19:50.251789 [rewrite:trace3] [pid 22837] mod_rewrite.c(483): [client 127.0.0.1:48618] 127.0.0.1 - - [test.xxx/sid#7fdd2c614f38][rid#7fdd2caac0a0/initial] [perdir /home/xxx/www/*/www/] add path info postfix: /home/xxx/www/test/www/cache1234 -> /home/xxx/www/test/www/cache1234/gen/js/js.js
2021-07-02 15:19:50.251835 [rewrite:trace3] [pid 22837] mod_rewrite.c(483): [client 127.0.0.1:48618] 127.0.0.1 - - [test.xxx/sid#7fdd2c614f38][rid#7fdd2caac0a0/initial] [perdir /home/xxx/www/*/www/] applying pattern '/cache([0-9]+)/(.*)$' to uri '/home/xxx/www/test/www/cache1234/gen/js/js.js'
2021-07-02 15:19:50.251852 [rewrite:trace2] [pid 22837] mod_rewrite.c(483): [client 127.0.0.1:48618] 127.0.0.1 - - [test.xxx/sid#7fdd2c614f38][rid#7fdd2caac0a0/initial] [perdir /home/xxx/www/*/www/] rewrite '/home/xxx/www/test/www/cache1234/gen/js/js.js' -> '/gen/js/js.js'
2021-07-02 15:19:50.251870 [rewrite:trace2] [pid 22837] mod_rewrite.c(483): [client 127.0.0.1:48618] 127.0.0.1 - - [test.xxx/sid#7fdd2c614f38][rid#7fdd2caac0a0/initial] [perdir /home/xxx/www/*/www/] trying to replace context docroot /home/xxx/www/test/www with context prefix 
2021-07-02 15:19:50.251879 [rewrite:trace1] [pid 22837] mod_rewrite.c(483): [client 127.0.0.1:48618] 127.0.0.1 - - [test.xxx/sid#7fdd2c614f38][rid#7fdd2caac0a0/initial] [perdir /home/xxx/www/*/www/] internal redirect with /gen/js/js.js [INTERNAL REDIRECT]