我正在使用Apache的mod_rewrite模块。有没有办法在RewriteRule
的正则表达式中引用RewriteCond
抓取的群组?
例如:
RewriteCond %{REQUEST_URI} ^(.*(?=/#How can I 'paste' $1 = RewriteRule's (.*) group here?#$))
RewriteRule ^(.*)$ - [E=BASE_PATH:%1]
在这里,我将匹配请求URI的基本路径,例如,如果我请求mysite.domain/subdir/my/site/dir
,.htaccess
在subdir/
内,则:
1) RewriteRule ^(.*)$ ----> ^(my/site/dir)$ -----> $1 = my/site/dir
2) RewriteCond /subdir/my/site/dir ^(.*(?=/#I need to 'paste' the $1 RewriteRule's matched group here#$))
我该怎么做才能让我的RewriteCond正则表达式“动态”生成并变为:
^(。*(?= / 我的/网站/ DIR $))
my / site / dir 在RewriteRule的$ 1组中匹配的是什么?
答案 0 :(得分:2)
不确定我理解你的问题,但这是一种方法来获得RewriteBase dyanmically
RewriteEngine on
RewriteCond $1-%{REQUEST_URI} ([^-]*)-(.*?)\1$
RewriteRule ^(.*)$ - [E=BASE:%2]
您的RewriteBase路径现在可用于env%{ENV:BASE}