【发布时间】:2016-12-26 20:56:08
【问题描述】:
抱歉,如果我的标题不足以描述我的问题。
我正在尝试使用 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]`
通过以上内容,我可以通过网址/media-uploads/image.jpg 访问/wordpress/wp-content/uploads/image.jpg
我还想做的是将Deny from all 应用于/wordpress/ 目录。如果我添加它,它会通过拒绝访问来工作,但它也会破坏图像重写,因此对/media-uploads/image.jpg 的请求会向我显示 403 禁止页面,因为它应该在/wordpress/ 区域中。
有人可以帮我吗?我有点手忙脚乱。
谢谢。
【问题讨论】:
-
在
/wordpress/wp-content/uploads/目录中的.htaccess带有Allow from all行应该覆盖/wordpress/中的行 -
@apokryfos 这很棒,而且很有效。但理想情况下,我希望该图像只能通过
/media-uploads/image.jpg访问,而不能通过/wordpress/wp-content/uploads/image.jpg访问。
标签: php regex apache .htaccess mod-rewrite