Php 将图像路径重写到另一个路径,并从所有原始路径拒绝

Php 将图像路径重写到另一个路径,并从所有原始路径拒绝,php,regex,apache,.htaccess,mod-rewrite,Php,Regex,Apache,.htaccess,Mod Rewrite,如果我的标题没有充分描述我的问题,我道歉 我正试图使用htaccessDeny from all锁定对网站某一部分(管理区域)的访问。在这个被拒绝的区域中有一些资产仍然需要在前端访问,因此我有一些重写可以工作,直到添加了Deny from all 我的图片实际上就在这里:/wordpress/wp content/uploads/ 但我希望可以从这里访问它们:/media uploads/ 我使用了以下htaccess代码,它运行良好: RewriteCond %{REQUEST_FILENAM

如果我的标题没有充分描述我的问题,我道歉

我正试图使用htaccess
Deny from all
锁定对网站某一部分(管理区域)的访问。在这个被拒绝的区域中有一些资产仍然需要在前端访问,因此我有一些重写可以工作,直到添加了
Deny from all

我的图片实际上就在这里:
/wordpress/wp content/uploads/

但我希望可以从这里访问它们:
/media uploads/

我使用了以下htaccess代码,它运行良好:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^media-uploads/(.*\.(jpg|jpeg|gif|bmp|png))$ wordpress/wp-content/uploads/$1 [L]`
有了以上内容,我可以通过url
/media uploads/image.jpg
访问
/wordpress/wp content/uploads/image.jpg

我还想做的是将
Deny from all
应用于
/wordpress/
目录。如果我添加这个,它会通过拒绝访问来工作,但它也会中断图像重写,因此请求
/media uploads/image.jpg
/wordpress/
区域显示403禁止页面

有人能帮我吗?我有点无所适从


谢谢。

要阻止对原始uri的访问,可以使用重写规则上方的以下条件

RewriteCond %{THE_REQUEST} /wordpress/wp-content/uploads/ [NC]
RewriteRule ^ - [R=403,L]

如果客户端请求/wordpress/wp content/upload/foobar

An
,这将向客户端返回403个错误。htaccess
目录中所有
行的
允许
/wordpress/wp content/uploads/
应该覆盖
/wordpress/
@apokryfos中的一行,这很好,也很管用。但理想情况下,我希望图像只能通过
/media uploads/image.jpg
访问,而不能通过
/wordpress/wp content/uploads/image.jpg
访问。