0

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

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

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

我们还尝试禁用 SEO urls/URL Rewrites 而无需更改。

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

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

4

1 回答 1

2

第一个解决方案:

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

第二种解决方案:

#fastcgi_param  MAGE_RUN_CODE default; 

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

第三个解决方案:

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

  2. DSO 模块是否mod_rewrite已安装在 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的第三个解决方案

于 2015-07-20T17:53:52.620 回答