我在子文件夹Public_html / cake /中有一个cakephp 2.x网站 我想在使用http或https
的根服务器(public_html)中显示图像Public_html / cake / images / logo.png应该成为Public_html / images / logo.png
任何想法如何使这个机智htaccess或其他?
src="<?php echo $this->webroot;?>images/logo.png
会给:
Public_html/cake/images/logo.png
我需要:
Public_html/images/logo.png
一个文件夹 我不想使用http,因为网站将是http和https,如果它有http内容,则会发出安全警告
答案 0 :(得分:2)
这种代码:
src="<?php echo $this->webroot;?>images/logo.png
不是如何编写CakePHP项目中的模板文件。有许多helper classes可以使生成html标记更容易。
要生成图片代码,请使用the Html Helper
创建格式化的图像标记。提供的路径应该是相对的
/app/webroot/img/
。echo $html->image('cake_logo.png', array('alt' => 'CakePHP'));
将输出:
<img src="/img/cake_logo.png" alt="CakePHP" />
与生成网址的所有方法一样,此方法会考虑应用程序是否安装在子文件夹中,因此无论应用程序是否安装在http://example.com
上,它都无需更改, http://example.com/folder
或http://localhost/MyProject
等。
如果传递了以正斜杠开头的路径,则 relative 到安装应用程序的位置。在Public_html
文件夹中安装此代码:
echo $html->image('/images/logo.png');
将生成:
<img src="/Public_html/images/logo.png" alt="" />
要获取网址,请使用the assetUrl method:
// Outputs /img/logo.png
echo $html->assetUrl('logo.png');
这是HtmlHelper调用的方法,用于将路径/ url放入图像标记的src
属性中。
CakePHP希望图像位于名为img
而非images
的文件夹中,这就是为什么所有文档都与您当前的用法完全匹配的原因。
如果您希望将图片保留在原来的位置,则可以通过定义imageBaseUrl
configuration setting来配置应用程序,使其与文档匹配。
答案 1 :(得分:0)
将此规则作为您的第一个重定向规则插入root .htaccess:
RewriteEngine On
RewriteRule ^cake/(images/.+)$ /$1 [L,NC,R=301,NE]