我们最近将Magento多站点环境迁移到了一个新的专用服务器,但是除了管理URL站点之外的所有站点(除了管理员之外没有使用)都在前端报告Magento样式404页面。
我们已确保打开mod_rewrite,检查数据库并手动修改PHPMyAdmin中的URL以分配一些临时测试URL。分配给管理区域的URL工作正常,其余的解析到服务器,但每个前端仍然是404.我们已经尝试将index.php添加到URL,没有更改。检查所有文件和文件夹权限,一切OK。手动清除所有缓存并从命令行重新编制索引。没变。
我们已经检查过HTACCESS是否正确。我们甚至已经对数据库和完整站点进行了另一次备份,并恢复到具有相同问题的另一台服务器。
我们也尝试过禁用SEO网址/网址重写而不做任何更改。
错误日志不要说很多也没用。
现在真的很挣扎,所以任何帮助或指针都非常感激。感谢
答案 0 :(得分:2)
第一个解决方案:
使用Magento的默认.htaccess文件替换当前的.htaccess文件。
第二个解决方案:
#fastcgi_param MAGE_RUN_CODE default;
如果不起作用,请尝试以下解决方案:
第三个解决方案:
这是否安装在Apache网络服务器上?如果没有,.htaccess函数将需要转换为您的Web服务器软件。
是否已在Apache中安装mod_rewrite
的DSO模块并已启用加载?
是否为虚拟服务器启用了AllowOverrides
,以便Options +FollowSymLinks
能够正常运行?您可能需要与托管服务提供商核实并启用它。
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的第三个解决方案