Magento 2.2错误“页面无法正确重定向”


10

我正在Magento CE 2.2.0上测试自己的模块,但一直收到“页面未正确重定向”。查看网络流量,我看到以下请求:

  • / magento22-acumulus / admin /
  • / magento22-acumulus / admin / admin / index / denied /
  • / magento22-acumulus / admin / admin / auth / login /
  • / magento22-acumulus / admin / admin /
  • / magento22-acumulus / admin / admin / index / denied /
  • / magento22-acumulus / admin / admin / auth / login /
  • / magento22-acumulus / admin / admin /
  • / magento22-acumulus / admin / admin / index / denied /
  • / magento22-acumulus / admin / admin / auth / login /
  • / magento22-acumulus / admin / admin /
  • ...

我的设置:

  • 在基本URL / magento22-acumulus /上本地安装
  • Wampserver 3.0.8,PHP 7.0.10和Apache 2.4.23

我做了什么:

  • 使用示例数据安装Magento 2.2.0
  • 设置已更改:删除密钥并使用标准admin / url
  • 测试了一下:我得到了登录屏幕
  • 安装我的模块,模块:启用,设置:升级,设置:di:编译
  • 测试了:错误如上
  • 模块:禁用,缓存:清洁,设置:di:编译
  • 测试了一下:我得到了登录屏幕
  • 重复此操作多次,使用相同的模式,因此我认为它与我的模块有关。
  • 但是后来我的模块工作了一次,就可以进入自己的页面了。不幸的是,错误又回来了,所以我继续进行一些调试以启用和禁用模块,但是找不到问题所在。
  • 现在我也没有启用模块就遇到了问题。所以我认为这是Magento本身的一些奇怪状况/错误。

这可能是什么问题?


如果您有解决方案,请发布您的答案
lalit mohan

不幸的是还没有。我停止在MA2.2上测试我的模块,现在仅在MA2.1上测试它。客户在MA2.2上使用了我的模块,因此有更多理由相信这不是我模块的配置,设置或代码中的某些错误。如果最终找到了解决方案,则将其发布。
fietserwin

我有同样的问题。我发现我的模块帮助程序类存在问题..您必须一个一个地检出模块..禁用以找出导致错误的原因..
lalit mohan

您可以分享图片得到的确切错误吗?
sarvesh Dineshkumar Patel

您尝试过一个新版本,没有添加任何扩展,否则?
sarvesh Dineshkumar Patel

Answers:


1

我不确定这是编译过程中的错误还是模块代码有问题。就我而言,Magento编译错误地为模块上的一个类创建了一个拦截器(没有实际定义的构造函数),该拦截器扩展了另一个模块的另一个类,该模块又从核心Magento扩展了一个类(均具有定义的构造函数)。除了您提到的问题之外,这还在前端中创建了一个空白页。在对Magento 2.2和Magento 2.1进行了几次全新安装后,同样的问题对我有用:

  • 启用开发人员模式:php bin / magento deploy:mode:set开发人员
  • 安装模块(上传/复制文件),然后运行php bin / magento setup:upgrade
  • 无需运行编译过程(仅在更改构造函数参数的顺序或更改参数类型时才需要),只需删除文件夹/ genic / code / YOURMODULENAMESPACE

0

由于您使用的是Apache,因此建议您启用RewriteLog。然后复制问题并再次检查日志。

RewriteLog "logs\rewritelog.txt"    
RewriteLogLevel 3

感谢您的回答,但是那能学到我什么呢?我已经尝试调试,所以我知道每个重定向的请求都由Magento处理。我看不出Apache是​​如何出现的?
fietserwin '18年

Magento不是网络服务器。apache网络服务器使用重定向。因此,由于错误与重定向有关,因此首先要查找正在做什么的apache。您有50%的机会看到apache进行奇怪的重定向(http-to-https或类似方法),有50%的机会看到magento指示apche以一种奇怪的方式进行重定向,例如非www到www或反之亦然。
x86fantini

Magento将重定向指令返回到浏览器。没有http与https的问题(就像在许多其他有关MA2.2无限重定向的报告中一样),也没有www与非www的问题,因为这是在本地主机上的。重定向到问题中描述的页面。
fietserwin

0

上周,我再次尝试安装一个干净的M2.3.4环境(带有示例数据),而且,它似乎可以正常工作。除此之外,在执行setup:di:compile之后,此问题再次出现。但是,从/ generation / code中删除生成的代码会使它再次工作...因此,这可能是生成器中的问题,或者是某些代码会检查对象的类型并且不适合生成的拦截器类。 。

@Gabriel MdS或多或少地回答了相同的问题,但是对我来说,当我自己的模块尚未安装时,它也发生了,所以我只有带有示例数据的全新安装。

因此,这不是确定的答案或解决方案,而是与@Gabriel MdS的答案一起肯定会提示生成过程。


0

我知道这是一个老方法,但是在我的Google搜索中排名第一。这些答案都没有帮助我,但我遇到了同样的问题并能够解决。我的设置使用反向代理。在代理后面,我使用http(non-ssl),在代理之前,仅允许使用https(ssl)。这导致了我的重定向问题。

解决方案:将以下行(在评论之后)添加到pub / index.php中

$ _SERVER ['HTTPS'] ='on';

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.