我正在尝试将一个文件重定向到另一个文件,但我对 htaccess 的理解不足以使其正常工作。
基本上,例如,如果有人访问mysite.com/i/somefile.png
我需要它重定向到mysite.com/view.php?i=somefile
(没有 .png 扩展名)
我也在尝试设置它,以便此过程仅发生本地请求,因此如果图像嵌入在另一个站点上,它将不会被重定向。
如果有人可以为此提供代码,并对其进行一些解释,以便我对将来的使用有更好的理解,我将不胜感激。
尝试将这些规则添加到文档根目录中的 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]
用以下方法解决了它:
RewriteCond %{HTTP_HOST} mysite\.com [NC]
RewriteCond %{HTTP_REFERER} !/view\.php
RewriteRule ^/?i/(.+)\.png$ http://mysite\.com/view.php?i=$1 [L]
并且从直接链接访问图像会重定向到 view.php,并且嵌入仍然有效。
感谢林乔恩的帮助