【发布时间】:2021-11-24 09:56:55
【问题描述】:
我的目标如下:当用户尝试访问图像(或 /wp-content/uploads/ 中的任何其他附件)时,我需要将他重定向到处理器 PHP 文件,该文件将检查用户是否已登录并且该文件由该用户上传。
到目前为止,我已经找到了这个解决方案:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^.*wp-content/uploads/.*
RewriteRule ^wp-content/uploads/(.*)$ file-processor.php?file=$1 [QSA,L]
</IfModule>
而且它只是不起作用。 ???我尝试了大量不同的组合,但没有运气。然后我决定尝试一些更简单的方法,发现我什至无法通过以下代码重定向直接访问的图像(虽然它适用于网站的任何其他页面):
Redirect 301 / https://example.com/
这部分确实令人困惑......是否应该对直接访问的文件进行一些不同的处理?
说清楚。使用最后一个代码,我得到以下行为:
- 如果我尝试访问网站上的任何页面(例如:“siteurl.com”或“siteurl.com/about”),则会按预期重定向到“https://example.com/”。
- 如果我尝试访问媒体“siteurl.com/wp-content/uploads/2021/10/someimg.jpg”,那么我可以访问该媒体并查看它,而我仍然希望被重定向到“https: //example.com”,但我没有得到任何重定向。
从我的主题中直接访问的文件也会出现同样的问题。尽管 .htaccess 中有最后一条重定向规则,我仍然可以访问它们:
Redirect 301 / https://example.com/
您能解释一下如何重定向直接访问的文件吗? 提前致谢! ????
【问题讨论】:
-
我已经更新了我的答案。
标签: php wordpress .htaccess redirect server