将图像路径重定向到根级别

时间:2016-10-23 05:42:20

标签: image .htaccess cakephp cakephp-2.0

我在子文件夹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内容,则会发出安全警告

2 个答案:

答案 0 :(得分:2)

这种代码:

src="<?php echo $this->webroot;?>images/logo.png

不是如何编写CakePHP项目中的模板文件。有许多helper classes可以使生成html标记更容易。

生成img标签

要生成图片代码,请使用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/folderhttp://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]