2014-09-10 53 views
1

我試圖只有當請求來自VLC播放器時才使用代理,所以在請求頭中用戶代理將包含VLC。httpd.conf proxypass rewrite

<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網頁插件文件,該文件位於在/ var/www/html等/ MVS /小青,所以我認爲重寫規則和的RewriteCond是錯誤的。該文件不應播放,因爲該文件不存在於http://www.example.com/directory/文件夾中。我不知道如何調試。 Sry

+0

這裏有什麼問題嗎? – AdamBT 2014-09-10 18:47:35

+0

該代碼無法正常工作.. – user3547021 2014-09-10 18:59:34

+0

我並非試圖給你一個困難時期,但是你應該編輯你的問題,以便它包含你從代碼中得到的錯誤或不正確的結果。 – AdamBT 2014-09-10 19:02:18

回答

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一起使用。