Apache2 VirtualHost - 正确的静默重定向?

时间:2015-07-07 01:06:27

标签: apache redirect virtualhost

希望这里有一个快速而简单的帖子。

举个例子,假设我有网址" https://i.pitter.us/gwqNnGSAPuDqS.png",但是当浏览器加载时,它会被发送到确定从哪个服务器获取图像的实际PHP脚本: " https://i.pitter.us/get.php?file=gwqNnGSAPuDqS.png

在我的Apache2 VirtualHost配置中,我有这个:

<VirtualHost *:80>
ServerAlias i.pitter.us
DocumentRoot /var/www/html/i
Options -Indexes
<Directory "/">
<Files  ~ "\.py*$">
  Order allow,deny
  Deny from all
</Files>
</Directory>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^i.pitter.us$
RewriteRule ^/(.*\.(png|gif|jpeg|jpg|exe|txt|zip|rar))$ https://i.pitter.us/get.php?file=$1
ErrorDocument 404 /404.php    
</VirtualHost>

在进一步解释我想要尝试做什么之前,我已经在StackOverflow上进行了大量搜索并尝试了不同的方法,但仍然在结束时我自己无法正确配置。我需要保留URL,就像它是直接图像的热链接一样,如上例所示。

为了正确完成我正在尝试的内容,有人可以提供我缺少的标志或规则的解释吗?

谢谢,

1 个答案:

答案 0 :(得分:0)

使用ServerName代替ServerAlias,除非.conf适用于其他域/子域。

您不需要RewriteCond。

你可以简化这个:

^/(.*\.(png|gif|jpeg|jpg|exe|txt|zip|rar))$

为:

\.(png|gif|jpe?g|exe|txt|zip|rar)$

另外,启用RewriteLog可以帮助您了解Apache正在做什么。

RewriteLog /path/to/log
RewriteLogLevel Debug