Наоборот, кажется, что Apache возвращает корректный код ошибки. Журнал показывает Apache, возвращаясь 460, но Ваш браузер может интерпретировать его по-другому (потому что 460 не определяется в RFC). Существует простой способ проверить это; от машины Linux (это мог даже быть сам сервер), попытайтесь выполнить следующее:
curl -I http://service.internal:10001/session/abc123/touch
Если бы это возвращается 460, чем это, казалось бы, было бы чем-то, чтобы сделать с браузерами (т.е. неизвестный код состояния означает ошибку сервера). В противном случае можно хотеть рассмотреть попытку этого, не используя mod_proxy - т.е. путем доступа к URL непосредственно.
Думаю, я решил эту проблему ... Я понял предыдущую идею, ваша строка получить данные и выполнить некоторую модификацию ... вот ...
(И извините за мой грязный код .. Это был мой первый раз, когда я работал с PS)
$DT = [DateTime]::Now.AddDays(-1)
$l = Get-EventLog -LogName 'Application' -InstanceId 3221243928 -After $DT | Select-Object @{n='CLIENT';e={$_.ReplacementStrings[-1]} }
$g = $l | group-object -property CLIENT | where {$_.Count -gt 10} | Select -property Name
$fw = New-Object -ComObject hnetcfg.fwpolicy2
$ar = $fw.rules | where {$_.name -eq 'Blocks'}
$arRemote = $ar.RemoteAddresses -split(',')
$w = $g | where {$_.Name.Length -gt 1 -and !($arRemote -contains $_.Name + '/255.255.255.255') }
$x = $w.Name.Replace(" [CLIENT: ","")
$z = $x.Replace("]","")
$h = ""
for($i=0;$i -lt $z.Count;$i++)
{
$h += $z[$i]
$h +="/255.255.255.255"
$h += ","
}
$full = $h + $ar.remoteaddresses
$fullarray = $full.Split(',')
$newlist = $fullarray | select -uniq
$ips = "";
for($i=0;$i -lt $newlist.Count;$i++)
{
$ips += $fullarray[$i]
if($i -lt ($newlist.Count -1))
{
$ips +=","
}
}
$w| %{$ar.remoteaddresses = $ips} # add IPs to firewall rule