0

我正在尝试将一个文件重定向到另一个文件,但我对 htaccess 的理解不足以使其正常工作。

基本上,例如,如果有人访问mysite.com/i/somefile.png我需要它重定向到mysite.com/view.php?i=somefile(没有 .png 扩展名)

我也在尝试设置它,以便此过程仅发生本地请求,因此如果图像嵌入在另一个站点上,它将不会被重定向。

如果有人可以为此提供代码,并对其进行一些解释,以便我对将来的使用有更好的理解,我将不胜感激。

4

2 回答 2

1

尝试将这些规则添加到文档根目录中的 htaccess 文件中:

RewriteEngine On
RewriteCond %{HTTP_REFERER} mysite.com [NC]
RewriteCond %{HTTP_REFERER} !/view\.php
RewriteRule ^/?i/(.+)\.png$ /view.php?i=$1 [L]

请注意,这将使通过<img src=标签嵌入的图像也将在内部被重写。


问题是(就像你说的那样),该页面的图像嵌入现在不起作用。有没有办法让嵌入工作?

您可以通过修改前缀并重写它们来尝试使<a>链接与链接不同:<img>

例如:

<a href="/a/something.png">
   <img src="/i/something.png">
</a>

然后:

RewriteEngine On
RewriteRule ^/?a/(.+)\.png$ /view.php?i=$1 [L]
于 2012-10-04T21:07:05.517 回答
0

用以下方法解决了它:

RewriteCond %{HTTP_HOST} mysite\.com [NC]
RewriteCond %{HTTP_REFERER} !/view\.php
RewriteRule ^/?i/(.+)\.png$ http://mysite\.com/view.php?i=$1 [L]

并且从直接链接访问图像会重定向到 view.php,并且嵌入仍然有效。

感谢林乔恩的帮助

于 2012-10-04T22:25:30.160 回答