Простой способ сделать это должно использовать BrowserMatchNoCase
директива, которая позволит Вам делать поиск без учета регистра переменной среды агента пользователя. Т.е.
BrowserMatchNoCase apple platform=macintosh
BrowserMatchNoCase mac platform=macintosh
[etc..]
RewriteCond %{ENV:platform} !macintosh
# Don't actually rewrite to anything (-); just return 403
RewriteRule ^.* - [F,L]
(как взято из mod_setenvif документации). Можно затем использовать эту переменную для перенаправления к различным страницам. Это было бы более чисто, если у Вас есть много условий проверить (и я понятия не имею, в скольких Вы будете нуждаться). Если Вы имеете только некоторых или хотите объединить их в цепочку вместе в том, что могло бы стать потенциально грязной строкой, Вы могли использовать mod_rewrite
непосредственно. Следующее обеспечивает это apple
и mac
не находятся в агенте пользователя и перенаправлениях, несоответствующих запросам.
RewriteCond %{HTTP_USER_AGENT} !apple [NC]
RewriteCond %{HTTP_USER_AGENT} !mac [NC]
[etc..]
# Don't actually rewrite to anything (-); just return 403
RewriteRule ^.* - [F,L]
Это использует [NC]
флаг для RewriteCond, который указывает, что поиски быть нечувствительным к регистру - снова, необходимость, если Вы не уверены, каким условиям Вы будете соответствовать. F
флаг в RewriteRule возвратит Запрещенные 403.
Примите во внимание комментарий Robert Moir, тем не менее, потому что это полагается на браузер, отправляющий агент пользователя соответствия - который не является даже близко к тому, чтобы быть надежным. Это должно запустить Вас, и Вы можете дополнительные соответствия, поскольку Вы находите их.
Andrew
При вставке имени хоста, через который будет ретранслироваться исходящая почта, добавьте имя в скобки, затем добавьте двоеточие, за которым следует номер порта.
smtp.example.com
становится [smtp .example.com]: 587