参考重写在重写正则表达式中匹配组?

时间:2016-05-05 05:48:22

标签: apache .htaccess mod-rewrite

我正在使用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.htaccesssubdir/内,则:

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组中匹配的是什么?

1 个答案:

答案 0 :(得分:2)

不确定我理解你的问题,但这是一种方法来获得RewriteBase dyanmically

RewriteEngine on

RewriteCond $1-%{REQUEST_URI} ([^-]*)-(.*?)\1$
RewriteRule ^(.*)$ - [E=BASE:%2]

您的RewriteBase路径现在可用于env%{ENV:BASE}