<li><a href="#LevelFor">LevelForRefererAnalyze</a>
<li><a href="#LevelFor">LevelForRobotsDetection</a>
<li><a href="#LevelFor">LevelForSearchEnginesDetection</a>
+<li><a href="#LevelFor">LevelForKeywordsDetection</a>
<li><a href="#LevelFor">LevelForFileTypesDetection</a>
<li><a href="#LevelFor">LevelForWormsDetection</a>
<a name="LevelFor"><b>LevelFor</b></a><br>
<b>Version : </b>4.0+<br>
-6.0+ for LevelForFileTypesDetection, LevelForSearchEnginesDetection<br>
+6.0+ for LevelForFileTypesDetection, LevelForSearchEnginesDetection, LevelForKeywordsDetection, LevelForWormsDetection<br>
<br># Following values allows you to define accuracy of AWStats entities (robots,
<br># browsers, os, referers, file types) detection.
<br># It is recommanded that very important web sites or ISP that provides AWStats
<br>#
<br>LevelForBrowsersDetection=2 # 0 disables Browsers detection.
<br>LevelForOSDetection=2 # 0 disables OS detection.
-<br>LevelForRefererAnalyze=2 # 0 disables origin detection.
+<br>LevelForRefererAnalyze=2 # 0 disables Origin detection.
<br>LevelForRobotsDetection=2 # 0 disables Robots detection.
<br>LevelForSearchEnginesDetection=2 # 0 disables Search engines detection.
+<br>LevelForKeywordsDetection=2 # 0 disables Keyphrases/Keywords detection.
<br>LevelForFileTypesDetection=2 # 0 disables file types detection.
<br>LevelForWormsDetection=0 # 0 disables Worms detection.
print "<tr> <td colspan=3><br>OPTIONAL ACCURACY SETUP SECTION (Not required but increase AWStats features)<br><hr></td> </tr>\n";
if ($in{'advanced'} == 2) {
- print "<tr> <td><b>LevelForRobotsDetection</b></td> <td> <input size=10 type=text name=LevelForRobotsDetection value='$lconf->{'LevelForRobotsDetection'}'> </td> <td> ";
- print &hblink($text{'help_help'}, "help.cgi?param=LevelForRobotsDetection")." </td> </tr>\n";
print "<tr> <td><b>LevelForBrowsersDetection</b></td> <td> <input size=10 type=text name=LevelForBrowsersDetection value='$lconf->{'LevelForBrowsersDetection'}'> </td> <td> ";
print &hblink($text{'help_help'}, "help.cgi?param=LevelForBrowsersDetection")." </td> </tr>\n";
print "<tr> <td><b>LevelForOSDetection</b></td> <td> <input size=10 type=text name=LevelForOSDetection value='$lconf->{'LevelForOSDetection'}'> </td> <td> ";
print &hblink($text{'help_help'}, "help.cgi?param=LevelForOSDetection")." </td> </tr>\n";
print "<tr> <td><b>LevelForRefererAnalyze</b></td> <td> <input size=10 type=text name=LevelForRefererAnalyze value='$lconf->{'LevelForRefererAnalyze'}'> </td> <td> ";
print &hblink($text{'help_help'}, "help.cgi?param=LevelForRefererAnalyze")." </td> </tr>\n";
+ print "<tr> <td><b>LevelForRobotsDetection</b></td> <td> <input size=10 type=text name=LevelForRobotsDetection value='$lconf->{'LevelForRobotsDetection'}'> </td> <td> ";
+ print &hblink($text{'help_help'}, "help.cgi?param=LevelForRobotsDetection")." </td> </tr>\n";
+ print "<tr> <td><b>LevelForSearchEnginesDetection</b></td> <td> <input size=10 type=text name=LevelForSearchEnginesDetection value='$lconf->{'LevelForSearchEnginesDetection'}'> </td> <td> ";
+ print &hblink($text{'help_help'}, "help.cgi?param=LevelForSearchEnginesDetection")." </td> </tr>\n";
+ print "<tr> <td><b>LevelForKeywordsDetection</b></td> <td> <input size=10 type=text name=LevelForKeywordsDetection value='$lconf->{'LevelForKeywordsDetection'}'> </td> <td> ";
+ print &hblink($text{'help_help'}, "help.cgi?param=LevelForKeywordsDetection")." </td> </tr>\n";
print "<tr> <td><b>LevelForFileTypesDetection</b></td> <td> <input size=10 type=text name=LevelForFileTypesDetection value='$lconf->{'LevelForFileTypesDetection'}'> </td> <td> ";
print &hblink($text{'help_help'}, "help.cgi?param=LevelForFileTypesDetection")." </td> </tr>\n";
print "<tr> <td><b>LevelForWormsDetection</b></td> <td> <input size=10 type=text name=LevelForWormsDetection value='$lconf->{'LevelForWormsDetection'}'> </td> <td> ";
$_from_h[2]++;
$_se_referrals_h{$TmpRefererServer{$refererserver}}++;
$found=1;
- my @refurl=split(/\?/,$field[$pos_referer],2); # TODO Use \? or [$URLQuerySeparators] ?
- if ($refurl[1]) {
- # Extract params of referer query string (q=cache:mmm:www/zzz+aaa+bbb q=aaa+bbb/ccc key=ddd%20eee lang_en ie=UTF-8 ...)
- my @paramlist=split(/&/,$KeyWordsNotSensitive?lc($refurl[1]):$refurl[1]);
- if ($SearchEnginesKnownUrl{$TmpRefererServer{$refererserver}}) { # Search engine with known URL syntax
- foreach my $param (@paramlist) {
- if ($param =~ s/^$SearchEnginesKnownUrl{$TmpRefererServer{$refererserver}}//) {
+ if ($LevelForKeywordsDetection) {
+ my @refurl=split(/\?/,$field[$pos_referer],2); # TODO Use \? or [$URLQuerySeparators] ?
+ if ($refurl[1]) {
+ # Extract params of referer query string (q=cache:mmm:www/zzz+aaa+bbb q=aaa+bbb/ccc key=ddd%20eee lang_en ie=UTF-8 ...)
+ if ($SearchEnginesKnownUrl{$TmpRefererServer{$refererserver}}) { # Search engine with known URL syntax
+ my @paramlist=split(/&/,$KeyWordsNotSensitive?lc($refurl[1]):$refurl[1]);
+ foreach my $param (@paramlist) {
+ if ($param =~ s/^$SearchEnginesKnownUrl{$TmpRefererServer{$refererserver}}//) {
+ # We found good parameter
+ # Now param is keyphrase: "cache:mmm:www/zzz+aaa+bbb/ccc+ddd%20eee'fff,ggg"
+ $param =~ s/^(cache|related):[^\+]+//;
+ &ChangeWordSeparatorsIntoSpace($param); # Change [ aaa+bbb/ccc+ddd%20eee'fff,ggg ] into [ aaa bbb/ccc ddd eee fff ggg]
+ $param =~ s/^ +//; $param =~ s/ +$//; $param =~ tr/ /\+/s;
+ if ((length $param) > 0) { $_keyphrases{$param}++; }
+ last;
+ }
+ }
+ }
+ elsif ($LevelForKeywordsDetection >= 2) { # Search engine with unknown URL syntax
+ my @paramlist=split(/&/,$KeyWordsNotSensitive?lc($refurl[1]):$refurl[1]);
+ foreach my $param (@paramlist) {
+ my $foundexcludeparam=0;
+ foreach my $paramtoexclude (@WordsToCleanSearchUrl) {
+ if ($param =~ /$paramtoexclude/i) { $foundexcludeparam=1; last; } # Not the param with search criteria
+ }
+ if ($foundexcludeparam) { next; }
# We found good parameter
- # Now param is keyphrase: "cache:mmm:www/zzz+aaa+bbb/ccc+ddd%20eee'fff,ggg"
+ $param =~ s/.*=//;
+ # Now param is keyphrase: "aaa+bbb/ccc+ddd%20eee'fff,ggg"
$param =~ s/^(cache|related):[^\+]+//;
- &ChangeWordSeparatorsIntoSpace($param); # Change [ aaa+bbb/ccc+ddd%20eee'fff,ggg ] into [ aaa bbb/ccc ddd eee fff ggg]
+ &ChangeWordSeparatorsIntoSpace($param); # Change [ aaa+bbb/ccc+ddd%20eee'fff,ggg ] into [ aaa bbb/ccc ddd eee fff ggg ]
$param =~ s/^ +//; $param =~ s/ +$//; $param =~ tr/ /\+/s;
- if ((length $param) > 0) { $_keyphrases{$param}++; }
- last;
+ if ((length $param) > 2) { $_keyphrases{$param}++; last; }
}
}
- }
- else { # Search engine with unknown URL syntax
- foreach my $param (@paramlist) {
- my $foundexcludeparam=0;
- foreach my $paramtoexclude (@WordsToCleanSearchUrl) {
- if ($param =~ /$paramtoexclude/i) { $foundexcludeparam=1; last; } # Not the param with search criteria
- }
- if ($foundexcludeparam) { next; }
- # We found good parameter
- $param =~ s/.*=//;
- # Now param is keyphrase: "aaa+bbb/ccc+ddd%20eee'fff,ggg"
- $param =~ s/^(cache|related):[^\+]+//;
- &ChangeWordSeparatorsIntoSpace($param); # Change [ aaa+bbb/ccc+ddd%20eee'fff,ggg ] into [ aaa bbb/ccc ddd eee fff ggg ]
- $param =~ s/^ +//; $param =~ s/ +$//; $param =~ tr/ /\+/s;
- if ((length $param) > 2) { $_keyphrases{$param}++; last; }
- }
- }
- } # End of if refurl[1]
+ } # End of if refurl[1]
+ }
}
} # End of if ($TmpRefererServer)
else {