0

我在 Godaddy 上有 Linux 虚拟主机。我尝试在子域上安装 Magento CE 1.8 一个多星期,但仍然无法正常工作。

在你说这个问题是重复的之前,我已经尝试了我在 Magento Wiki、论坛、谷歌和 Godaddy 论坛和支持上找到的所有内容,但我仍然无法让它工作。

对于 php5.ini,我使用 Magento php.ini.sample,.htaccess 也来自 Magento。

在 .htaccess 中使用 Options -MultiViews 通常不会做任何事情。php5.ini 中的设置 cgi.fix_pathinfo = 1 创建循环重定向。我曾尝试在 .htaccess 中使用 RewriteBase,但这也无济于事。

我读到 Magento 不能在 fcgi 上运行,所以我在我的 .htaccess 中使用,也没有帮助:

Options +ExecCGI
addhandler x-httpd-php5-cgi .php

我总是以“未指定文件输入”或循环重定向或服务器错误结束。

仅添加了我看到的错误日志中的行:

[Thu Oct 31 01:23:08 2013] [11988011] [negotiation:error] [client 5.178.58.85:65433] AH00687: Negotiation: discovered file(s) matching request: "path" (None could be negotiated).

但我不知道那是什么意思或如何解决这个问题。

那么还有什么我可以尝试的还是我错过了什么?我知道 Godaddy 共享主机上的 Magento 不是一个好主意,但我需要在那里运行我的开发和生产将在我的客户专用服务器上运行。

4

3 回答 3

2

将此添加到您的 .htaccess 文件中并忘记其他修复....

重写规则 ^index.php/(.*)$ [L]

于 2014-06-06T03:08:01.217 回答
0

如果 magento 位于子目录中,则使用:

RewriteRule ^index.php/admin(.*) {RewriteBase}/admin$1 [L]
于 2014-03-20T08:00:34.820 回答
0

因此,经过几周在网上尝试不同的解决方案并试图获得支持来帮助我,我设法解决了这个问题。

没有什么能解决它,所以我自己尝试了一下,发现问题是 url 中的“index.php”。所以我创建了简单的 php 函数,它在 index.php 文件的开头运行。这个函数从 url 中删除“index.php/”并重定向到这个新的 url。

此外,要从表单操作和其他可能显示 url 的地方删除“index.php”,最好创建自己的路由器模块或修改 Magentos 路由器。

现在一切正常。

PS: 我还保留了其他修复:

在 .htaccess 中:

Options +ExecCGI
AddHandler x-httpd-php5-cgi .php
AddHandler x-httpd-php5-cgi .php5

Options -MultiViews

RewriteBase /

并在 php5.ini

cgi.fix_pathinfo = 1

编辑

我写的确实有效,但不是很好的解决方案,index.php 中的重定向当然会丢失所有 POST 数据。并且查看 Magento 和更改路由器需要太多的工作,所以最后我设法在 .htaccess 中为管理员创建了工作规则。只需将其作为 .htaccess 中的最后一个重写规则:

RewriteRule ^index.php/admin(.*) /admin$1 [L]

编辑

忘记在这里写了,我已经把重写改成了这样:

RewriteRule ^index.php/(.*) /$1 [L]
于 2013-11-05T21:53:02.867 回答