.htaccess 使用cd后未正确加载预设图像
我最近尝试将一些HTTP图像请求卸载到CDN(使用S3) 我的cdn位于s3.mydomain.com 一旦我添加了媒体服务器,一切看起来都正常(css、javascript)。然而,有一个问题。我的所有产品图片都丢失了 我尝试了以下方法:.htaccess 使用cd后未正确加载预设图像,.htaccess,amazon-s3,prestashop,prestashop-1.5,.htaccess,Amazon S3,Prestashop,Prestashop 1.5,我最近尝试将一些HTTP图像请求卸载到CDN(使用S3) 我的cdn位于s3.mydomain.com 一旦我添加了媒体服务器,一切看起来都正常(css、javascript)。然而,有一个问题。我的所有产品图片都丢失了 我尝试了以下方法: 关闭友好URL-->后,一切都会像符咒一样工作。 可以显示产品图像(但仅当打开友好URL时) 走开 重新生成缩略图-->仍然获取丢失的图像 移动图像-->仍然获取缺少的图像 启用“友好URL”的完整URL为: (不起作用) 关闭“友好URL”后,它将变为
- 关闭友好URL-->后,一切都会像符咒一样工作。 可以显示产品图像(但仅当打开友好URL时) 走开
- 重新生成缩略图-->仍然获取丢失的图像
- 移动图像-->仍然获取缺少的图像
# Images
RewriteCond %{HTTP_HOST} ^xx.bro.do$ [OR]
RewriteCond %{HTTP_HOST} ^brodo.dev$
RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.jpg [L]
RewriteCond %{HTTP_HOST} ^xx.bro.do$ [OR]
RewriteCond %{HTTP_HOST} ^brodo.dev$
RewriteRule ^([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$1$2$3$4.jpg [L]
RewriteCond %{HTTP_HOST} ^xx.bro.do$ [OR]
RewriteCond %{HTTP_HOST} ^brodo.dev$
RewriteRule ^([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$1$2$3$4$5.jpg [L]
RewriteCond %{HTTP_HOST} ^xx.bro.do$ [OR]
RewriteCond %{HTTP_HOST} ^brodo.dev$
RewriteRule ^([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg [L]
RewriteCond %{HTTP_HOST} ^xx.bro.do$ [OR]
RewriteCond %{HTTP_HOST} ^brodo.dev$
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg [L]
RewriteCond %{HTTP_HOST} ^xx.bro.do$ [OR]
RewriteCond %{HTTP_HOST} ^brodo.dev$
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg [L]
RewriteCond %{HTTP_HOST} ^xx.bro.do$ [OR]
RewriteCond %{HTTP_HOST} ^brodo.dev$
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg [L]
RewriteCond %{HTTP_HOST} ^xx.bro.do$ [OR]
RewriteCond %{HTTP_HOST} ^brodo.dev$
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg [L]
另一个100%可行的解决方案是更改以下文件上的实际代码:
- 第三方物流产品
- product-list.tpl
- 还有几乎所有缺少产品图像的文件
那么有人知道如何解决这个问题吗?我感谢任何帮助。这个方法对我很有效 步骤1:启用友好url。检查在没有媒体服务器的情况下一切正常。确保启用了友好的,并且禁用了媒体服务器 当第1步开始工作时,您将看到产品的url 第2步:现在启用媒体服务器。我正在使用cloudfront作为cdn和s3作为存储桶 启用媒体服务器时 您将遇到两种情况 1.css和js不会加载,甚至图像也不会加载 2.图像将加载,但css和js不会加载 解决方法是:转到高级参数->性能->CCC(合并压缩和缓存) CSS智能缓存——如果是是,请选择否 JavaScript智能缓存——如果是是,请选择否 在此之后,请重新加载您的页面。该站点似乎正常 但在此阶段,您可能会遇到另外两种情况 1.css、js、图像均已正确加载,但无法加载产品图像 2.一切正常加载,您的站点运行良好。无需任何进一步更改 如果您遇到第一种情况,请执行以下步骤 步骤1。打开ftp客户端并导航到apache文件夹 通常,它将驻留在rootofserver/etc/apache中/
in my case it is rootofserver/etc/httpd
在你的情况下,它可能是相同的,也可能是相同的
rootofserver/etc/apahce/
or rootofserver/etc/apahce2/
步骤2。在文件夹中打开httpd.conf文件后,您可以使用任何编辑器
我的情况又是这样
its httpd.conf it might be same or it will be
apaceh2.conf or apache.conf
步骤3。在任何文本编辑器中打开文件后在下面几行中找到这些内容,如果没有,则将其设置为“全部”。(确保“a”为大写) 命令是
"sudo chmod 0666 /etc/httpd/httpd.conf"
复制粘贴并在命令行界面中按enter键。确保文件名与服务器中的文件名相同,并且路由也相同
如果即使在所有这些更改之后,您的产品图像仍然没有加载,那么
转到您的cdn控制台并将源设置为您的Web服务器本身。不要使用s3存储桶
例如,如果您的站点域名(开发时)可能
或任何其他服务,如果您使用
提供该名称作为cdn的来源。因为这将使服务器和cdn之间的文件保持同步,而cdn作为s3存储桶
您必须手动更新站点的主副本。(有一些方法可以实现s3和服务器之间的同步,但我还没有尝试过)
遵循这些步骤,您的网站可能会正常运行。这对我来说非常好,而且该网站现在支持url和媒体服务器。您找到解决方案了吗?即使我面临同样的问题,这对我来说也很有效,关键是您不必使用S3 bucket,而必须使用网站本身作为源站。但是我仍然不确定gzip内容编码将如何工作。S3将遵循源代码中的gzip内容编码,S3无法将头添加到文件中。
<Directory "/var/www/html">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride All
chmod 0666 to the file
"sudo chmod 0666 /etc/httpd/httpd.conf"
ec2.userxxxxxxxx.aws.com (if amazon ec2)