Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 使用cd后未正确加载预设图像_.htaccess_Amazon S3_Prestashop_Prestashop 1.5 - Fatal编程技术网

.htaccess 使用cd后未正确加载预设图像

.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”后,它将变为

我最近尝试将一些HTTP图像请求卸载到CDN(使用S3)

我的cdn位于s3.mydomain.com

一旦我添加了媒体服务器,一切看起来都正常(css、javascript)。然而,有一个问题。我的所有产品图片都丢失了

我尝试了以下方法:

  • 关闭友好URL-->后,一切都会像符咒一样工作。 可以显示产品图像(但仅当打开友好URL时) 走开
  • 重新生成缩略图-->仍然获取丢失的图像
  • 移动图像-->仍然获取缺少的图像
启用“友好URL”的完整URL为: (不起作用)

关闭“友好URL”后,它将变为:

因此,不知何故,“友好URL”没有被正确重定向到“不友好URL”

下面是我的.htaccess的一个片段

# 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作为cdns3作为存储桶

启用媒体服务器时

您将遇到两种情况

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)