0
在目录$HOME/public_html/test
中有两个文件.htaccess
和query.cgi
。我想将xxx.cgi?yyy
转换为query.cgi?a=xxx&yyy
。RewriteRule以奇怪的方式工作
的.htaccess:
RewriteEngine on
RewriteRule ^(.*)\.cgi\?(.*)$ query.cgi?a=$1&$2
RewriteRule ^(.*)\.cgi$ query.cgi?b=$1
query.cgi(CGI检查查询):
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
my $query = $ENV{QUERY_STRING} ||= "no query";
print "Content-Type: text/html; charset=utf-8\n\n";
print "<html><body><p>". $query . "</p></body></html>";
的问题是:如果我访问xxx.cgi?yyy
,则查询b=query
。
我希望应用第一条规则,以便查询是a=xxx&yyy
。但是第一条规则被忽略,第二条规则被应用,尽管由于正则表达式第二条规则不能被应用。