【问题标题】:Magento 404 front end on Multi Site after moving server移动服务器后多站点上的 Magento 404 前端
【发布时间】:2015-07-20 13:08:17
【问题描述】:

我们最近将 Magento 多站点环境移至新的专用服务器,但是除了 admin URL 站点(除了 admin 之外不使用)之外的所有站点都在前端报告 Magento 样式 404 页面。

我们确保 mod_rewrite 已打开,检查数据库并手动修改 PHPMyAdmin 中的 URL 以分配一些临时测试 URL。分配给管理区域的 URL 工作正常,其余解析到服务器,但是每个前端仍然是 404。我们尝试将 index.php 添加到 URL,没有变化。检查所有文件和文件夹权限,一切正常。手动清除所有缓存并从命令行重新索引。不用找了。

我们已经检查了 HTACCESS 看起来是正确的。我们甚至对数据库和完整站点进行了另一次备份,并恢复到另一台存在相同问题的服务器上。

我们也尝试禁用 SEO 网址/网址重写而不进行更改。

错误日志也没有说太多,这没有帮助。

现在真的在为此苦苦挣扎,因此非常感谢任何帮助或指示。谢谢

【问题讨论】:

    标签: magento mod-rewrite server http-status-code-404 dedicated


    【解决方案1】:

    第一个解决方案:

    用 Magento 的默认 .htaccess 文件替换当前的 .htaccess 文件。

    第二种解决方案:

    #fastcgi_param  MAGE_RUN_CODE default; 
    

    如果不起作用,请尝试以下解决方案:

    第三种解决方案:

    1. 它是否安装在 Apache 网络服务器上?如果不是,则需要将 .htaccess 函数转换为您喜欢的 Web 服务器软件。

    2. mod_rewrite 的 DSO 模块是否已安装在 Apache 中并已启用加载?

    3. 是否为虚拟服务器启用了AllowOverrides,以便Options +FollowSymLinks 可以正常工作?您可能需要咨询您的托管服务提供商并启用它。

    4. Magento 的 .htaccess 文件是否在 doc 根文件夹中可用?
    5. .htaccess 文件中是否开启了重写引擎?
    6. 是否在 .htaccess 文件中分配了正确的 RewriteBase?

    Magento 的 .htaccess 中的一般条目必须起作用,因此重写将起作用以消除 index.php 出现在 URL 中的需要。

    <IfModule mod_rewrite.c>
    ############################################
    ## enable rewrites
        Options +FollowSymLinks
        RewriteEngine on
    
    ############################################
    ## you can put here your magento root folder
    ## path relative to web root
        #RewriteBase /magento/
    
    ############################################
    ## workaround for HTTP authorization
    ## in CGI environment
        RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    
    ############################################
    ## always send 404 on missing files in these folders
        RewriteCond %{REQUEST_URI} !^/(media|skin|js)/
    
    ############################################
    ## never rewrite for existing files, directories and links
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-l
    
    ############################################
    ## rewrite everything else to index.php
        RewriteRule .* index.php [L]
    
    </IfModule>
    

    来自Fiasco Labs的第三个解决方案

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-17
      • 1970-01-01
      • 1970-01-01
      • 2012-03-24
      • 1970-01-01
      • 2015-10-21
      • 2020-07-27
      • 2015-04-15
      相关资源
      最近更新 更多