我在生产中有一个社交网络应用程序,我正在努力加强我的系统和开发实践。但是,随着应用程序变得越来越流行,我不想将某些资产下载到我的本地机器上只是为了拥有一个本地的simprod。 (例如,用户上传的图片。)
我正在使用Zend Framework,我的本地设置使用本地方框上的vhost定义。我不是Apache专家,但我尝试过一些东西。
I need to serve certain assets from my remote server when they are requested by the local application
在我的<VirtualHost>
配置中,我一直在尝试:
Alias images/users http://www.productionsite.com/images/users
但似乎不起作用。有问题的资产位于/public
目录下,因此ZF不会重写这些请求。我也在本地.htaccess
我想我可以为这个资产路径写一个配置到application.ini
,但是我必须重构更多的代码而不是真正的值,因为应用程序正在重写ZF2。
如何使用apache而不是ZF执行此操作?
答案 0 :(得分:0)
原来我应该使用Redirect
代替Alias
。还应该注意的是,在请求路径和重定向路径上添加一个反斜杠对于这种特定情况至关重要,因为它不正确地匹配请求并在没有它的情况下调用错误的路径。
您还需要确保设置了几个选项...如果不是应用程序,那么至少在<Directory
上,并且此配置需要在之后声明为 Redirect
命令。
这可以通过rewrite_module
apache模块实现,因此我必须确保它已启用。
<VirtualHost *:80>
ServerAdmin a@a.com
DocumentRoot "c:/wamp/www/app/public"
ServerName www.local.website.com
..other non-relevant settings
Redirect /images/users/ http://bnboomer.com/images/users/
<Directory "c:/wamp/www/app/public/images/users" >
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
如果您以安全的方式设置了本地Apache,则列出的<Directory>
规则对于完成此工作非常重要。但是,如果您只使用默认的wamp选项,则WAMP / MAMP / LAMP安装会在.conf
中的www目录的目录块中配置这些选项,因此不一定需要定义再次为了使其正常工作。
注意:如果您在与同一个“本地”计算机相同的网络上使用多台不同的计算机,并使用apache作为代理,则将这些选项锁定下来非常重要。 Apache文档有一篇关于URL Mapping的文章,我发现它甚至比重写或别名文档更有帮助。
注意:在任何人拒绝回答我自己的问题之前......我需要快速解决问题,而且这个问题没有获得任何意见,所以我花了几个小时浏览文档并剔除。我考虑过删除这个问题,但我觉得它可能对社区有价值,所以我决定离开它......而是回答它。