CakePHP 奇怪的重定向

Posted

技术标签:

【中文标题】CakePHP 奇怪的重定向【英文标题】:CakePHP odd redirect 【发布时间】:2013-09-17 16:02:48 【问题描述】:

有一个 Cakephp 应用程序。我们需要它在 SSL 上工作。由于 1&1 的 Apache 配置方式(神秘且显然是秘密的),它拒绝对不正确存在的文件的请求。因此,我们通过取消注释来关闭 CakePHP 的漂亮永久链接

Configure::write('App.baseUrl', env('SCRIPT_NAME'));

..in app/Config/core.php

由于应用程序使用漂亮的永久链接链接到自身,我们需要从漂亮的永久链接重定向到非漂亮的。

RewriteEngine On
RewriteCond %REQUEST_URI ^/papers/paper$
RewriteRule (.*) (our domain name)/index.php/papers/paper [R=301,L]

但是,当访问应用程序的特定页面/papers/paper 时,服务器将重定向返回到/index.php/kunden/homepages/21/d286159521/htdocs/hr/hr.advancedcarellc.com/index.php/papers/paper,我无法弄清楚。即使禁用任何相关的 .htaac​​cess,也会出现此行为。

但是,运行 grep -r "kunden" 会给出

./lib/Cake/Test/Case/Network/CakeRequestTest.php:       $_SERVER['DOCUMENT_ROOT'] = '/kunden/homepages/4/d181710652/htdocs/joomla';
./lib/Cake/Test/Case/Network/CakeRequestTest.php:       $_SERVER['SCRIPT_FILENAME'] = '/kunden/homepages/4/d181710652/htdocs/joomla/dbhauser/index.php';
./test/lib/Cake/Test/Case/Network/CakeRequestTest.php:      $_SERVER['DOCUMENT_ROOT'] = '/kunden/homepages/4/d181710652/htdocs/joomla';
./test/lib/Cake/Test/Case/Network/CakeRequestTest.php:      $_SERVER['SCRIPT_FILENAME'] = '/kunden/homepages/4/d181710652/htdocs/joomla/dbhauser/index.php';
./test/test/lib/Cake/Test/Case/Network/CakeRequestTest.php:     $_SERVER['DOCUMENT_ROOT'] = '/kunden/homepages/4/d181710652/htdocs/joomla';
./test/test/lib/Cake/Test/Case/Network/CakeRequestTest.php:     $_SERVER['SCRIPT_FILENAME'] = '/kunden/homepages/4/d181710652/htdocs/joomla/dbhauser/index.php';

这似乎暗示重定向是由某种绝对路径/相对路径不匹配引起的,但我想不出任何实际做任何重定向的事情。

我还怀疑 1&1 的某些隐藏配置方式。有人有 1&1 和 CakePHP 的经验吗?

【问题讨论】:

【参考方案1】:

您是否使用任何符号链接?

如果您使用符号链接,有时系统返回的资源路径可能与 URL 不同。

【讨论】:

ls -lR 。 | grep ^l 当您在要搜索的文件夹中时,从命令行运行它。

以上是关于CakePHP 奇怪的重定向的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 .htaccess 文件重定向到完整的服务器路径而不是相对路径?

Kong背后的Keycloak和奇怪的重定向

Spring 4 Security + CORS + AngularJS - 奇怪的重定向

grails spring security ui登录有时会出现奇怪的重定向

IE6 上的重定向循环

LTE中的重定向