httpd.conf proxypass重写

时间:2014-09-10 18:41:34

标签: apache proxypass

我只是在请求来自VLC播放器时尝试使用代理,因此在请求标头中,用户代理将包含VLC。

<Directory "/var/www/html/mvs">
RewriteEngine On
RewriteCond expr "%{HTTP_USER_AGENT} -strmatch '*VLC*'"
RewriteRule ^mvs/(.*)$  http://www.example.com/directory/$1  [P]
ProxyPassReverse /mvs/ http://www.example.com/directory/
</Directory>

当我在VLC web插件中运行一个文件时,它位于/ var / www / html / mvs /中,所以我认为RewriteRule和RewriteCond是错误的。该文件不应播放,因为http://www.example.com/directory/文件夹中不存在该文件。我不知道如何调试它。 Sry

1 个答案:

答案 0 :(得分:1)

我明白了。我在html目录中的.htaccess文件中写了以下几行:

Options +FollowSymLinks
RewriteEngine On
RewriteCond  %{HTTP_USER_AGENT}  ^VLC
RewriteRule  ^mvs(.*) http://188.25.221.87$1 [R,L]

如果用户代理包含VLC,并尝试访问/ html / mvs /目录,则会将其重定向到http://188.25.221.87/,并复制/ mvs /之后的路径或查询。如果用户代理不包含VLC,则不会重定向用户。重要的是,%{HTTP_USER_AGENT} ^区分大小写,因此无法使用^ vlc。