2016-08-19 39 views
2

道歉,如果我的标题不足以描述我的问题。重写图像路径到另一个路径,并拒绝所有原始路径

我试图通过使用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]` 

随着上述我可以访问/wordpress/wp-content/uploads/image.jpg通过url /media-uploads/image.jpg

我想做的事情als o,将Deny from all应用于/wordpress/目录。如果我添加它,它的工作原理是拒绝访问,但它也会中断图像重写,因此,向/media-uploads/image.jpg的请求会显示403禁止页面,因为它应该在/wordpress/区域中显示。

任何人都可以帮助我吗?我有点松散。

谢谢。

+0

在'/ wordpress/wp-content/uploads /'目录下有一个'Allow from all'行的'.htaccess'应该覆盖'/ wordpress /' – apokryfos

+0

@apokryfos中的''.htaccess',这很棒,而且有些作品。但理想情况下,我希望图片只能通过“/ media-uploads/image.jpg”访问,不能通过“/ wordpress/wp-content/uploads/image.jpg”访问。 – rorymorris89

回答

1

要阻止访问一部开拓创新的URI,你可以使用你重写规则

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

上述以下条件这将返回403错误给客户,如果他们的请求/ WordPress的/可湿性粉剂内容/上传/ foobar的