Magento .htaccess文件RewriteBase设置?

时间:2013-12-17 12:41:20

标签: apache .htaccess magento redirect internal-server-error

我解决了在为现有的Magento商店设置暂存环境时遇到的问题。但是我不明白它为什么会起作用。为什么我的网站上没有问题。

这是我得到的错误,每当我尝试导航我的网站暂存主页时,我得到 500内部服务器错误

在错误日志中我得到了这个:

[Tue Dec 17 01:12:52 2013] [error] [client 127.0.0.1] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
[Tue Dec 17 12:56:17 2013] [error] [client 127.0.0.1] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace., referer: http://localhost.mysite.com/

稍微research online,我通过将 .htaccess 文件 RewriteBase 设置更改为RewriteBase /来解决此问题。在我的实际网站上,此设置已注释为#RewriteBase /magento/

  1. 为什么只在我的暂存环境中需要此设置?
  2. 它是否应该在现场环境中,还是应该避免 完全?
  3. 我在Ubuntu上的Apache2服务器上本地运行该站点 机器,也许它与我的本地服务器设置有关?

1 个答案:

答案 0 :(得分:1)

  

为什么只在我的暂存环境中需要此设置?

可能是因为您的暂存环境位于文档根目录中名为/magento/的目录中。如果您有以下支票:

RewriteCond %{REQUEST_FILENAME} !-f

并且基础错误,检查文件是否存在失败。基数用于附加到相对URL路径的开头。因此,如果您的文件位于/magento/,那么没有正确的基础,您的检查将失败,您的规则将无限循环(或直到达到内部递归限制)。在您的生产环境中,文件可能位于文档根目录中,因此基本不是必需的,因为规则与您重写的文件位于同一目录中。

至于其他两个问题,如果不查看所有规则和所有设置,都无法回答。