移动服务器后,Magento 404前端在Multi Site上

时间:2015-07-20 13:08:18

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

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

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

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

我们也尝试过禁用SEO网址/网址重写而不做任何更改。

错误日志不要说很多也没用。

现在真的很挣扎,所以任何帮助或指针都非常感激。感谢

1 个答案:

答案 0 :(得分:2)

第一个解决方案:

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

第二个解决方案:

#fastcgi_param  MAGE_RUN_CODE default; 

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

第三个解决方案:

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

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

  3. 是否为虚拟服务器启用了AllowOverrides,以便Options +FollowSymLinks能够正常运行?您可能需要与托管服务提供商核实并启用它。

  4. Magento的.htaccess文件是否可以在doc根文件夹中找到?
  5. 是否已在.htaccess文件中打开重写引擎?
  6. 是否已在.htaccess文件中分配了正确的RewriteBase?
  7. 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的第三个解决方案