这可能是愚蠢的简单任务,或者不可能。而且很难知道要搜索什么。在此处发布问题。
上下文
我有一个Wordpress插件来处理媒体,该插件配置为提供以下文件的服务:
ROOT/wp-content/uploads/protected/
在/protected/
文件夹中,有一个(空的index.html)和一个.htaccess
文件:
RewriteCond %{REQUEST_URI} ^.*uploads/protected/.*
RewriteRule ^(.*)$ http://whatever.com/wp-content/plugins/plugin-name-root/subfolder/access.php?file=$0 [QSA,L]
因此,.htaccess文件具有一个rewriteRule,用于驻留在插件子文件夹中的PHP脚本。浏览器中的网址最终看起来像这样:
h ** p://whatever.com/wp-content/plugins/plugin-name-root/protect/access.php?file = some-document.pdf
要解决的问题
此URL很长,我也不想在URL中输入插件名称。我希望由浏览器中的access.php 提供服务,例如(或可能的话):
h ** p://whatever.com/access.php?file = some-document.pdf
甚至更好:
h ** p://whatever.com/access/some-document.pdf
注意:我不要要使用新的网址访问文件,只需提供 最终网址很漂亮我们仍然在网页上输出链接(请求) 像这样的网址 h ** p://whatever.com/wp-content/uploads/protected/some-image-or-document.docx
插件协议处理输出,就像验证后对readfile()
一样。在这种情况下,脚本最终将执行:
readfile('../../../uploads/protected/some-document.pdf');
,浏览器显示(如前所述):
h**p://whatever.com/wp-content/plugins/plugin-name-root/protect/access.php?file=some-document.pdf
该脚本以及所有插件限定的协议和脚本都可以进行操作,由于这个原因,因为没有应用更新,因此可以。
但是,我们真的不想更改原始的wordpress根目录 .htaccess文件以从那里进行重定向。我们希望只是 在浏览器中伪造地址。 media-files 还必须使用带有/ protected /子文件夹的wordpress默认上载目录。
可以从
处理代码a)插件核心代码或
b).htaccess(由插件创建)在上载/保护/文件夹中或
c)在插件access.php子文件夹中创建另一个“新” .htaccess文件,或者
d)在access.php脚本中的readfile()之前发送一些标头...
那是上下文!
P,有人想分享解决我的目标吗?