Revision 9ea6d163
Von Sven Schöling vor etwa 14 Jahren hinzugefügt
SL/Dispatcher.pm | ||
---|---|---|
130 | 130 |
my $interface = lc(shift || 'cgi'); |
131 | 131 |
my ($script_name, $action); |
132 | 132 |
|
133 |
if ($interface =~ m/^(?:fastcgi|fcgid|fcgi)$/) { |
|
134 |
$script_name = $ENV{SCRIPT_NAME}; |
|
135 |
unrequire_bin_mozilla(); |
|
133 |
$script_name = $ENV{SCRIPT_NAME}; |
|
136 | 134 |
|
137 |
} else { |
|
138 |
$script_name = $0; |
|
139 |
} |
|
135 |
unrequire_bin_mozilla($interface); |
|
140 | 136 |
|
141 | 137 |
$::cgi = CGI->new(''); |
142 | 138 |
$::locale = Locale->new($::language); |
... | ... | |
205 | 201 |
} |
206 | 202 |
|
207 | 203 |
sub unrequire_bin_mozilla { |
204 |
return unless $_[0] =~ m/^(?:fastcgi|fcgid|fcgi)$/; |
|
205 |
|
|
208 | 206 |
for (keys %INC) { |
209 | 207 |
next unless m#^bin/mozilla/#; |
210 | 208 |
next if /\bcommon.pl$/; |
Auch abrufbar als: Unified diff
Bugfix CGI Routing - $0 wird bei MatchAlias auf dispatcher.pl nicht richtig gesetzt.
Die ursprüngliche Version zieht sich den aufgrufenen Scriptnamen aus $0. Das
funktioniert aber nur in der Symlinkversion. Wenn ein Matchalias auf das Script
gesetzt wird, muss der Scriptname aus %ENV geholt werden. Da das bei FCGI
sowieso schon gemacht wird, das einfach zum Standard erklärt, und dafür das
unrequire vereinfacht.