.htaccess CakePHP2.3.:URL重写不起作用

.htaccess CakePHP2.3.:URL重写不起作用,.htaccess,cakephp,.htaccess,Cakephp,我们刚从一个Web服务器迁移到另一个Web服务器。 我有一个简单的静态网站,并使用此方法重写URL: default.ctp <?=$this->Html->link(__('Imprint'), array('controller' => 'pages', 'action' => 'imprint'));?> 在旧的Web服务器上,链接显示为:domain.com/imprint 在新服务器上,它显示为domain.com/pages/imprint 页面

我们刚从一个Web服务器迁移到另一个Web服务器。 我有一个简单的静态网站,并使用此方法重写URL:

default.ctp

<?=$this->Html->link(__('Imprint'), array('controller' => 'pages', 'action' => 'imprint'));?>
在旧的Web服务器上,链接显示为:domain.com/imprint

在新服务器上,它显示为domain.com/pages/imprint

页面正在运行,没有断开的链接。 我已经在htaccess文件中设置了“RewriteBase/”

如何让url重写恢复工作? 我目前不知道会有什么错误,因为我移动了另一个蛋糕项目,也是一个静态项目,那里的链接从一开始就工作得很好。我不知道,为什么这个项目是不同的,我比较了htaccess文件,核心,路线。。。我真的看不出问题…

使用:

$this->Html->link(__('Imprint'), array('controller' => 'pages', 'action' => 'display', 'imprint'));
使用:

使用:

使用:


我不知道这与服务器有什么关系,也不知道你的URL数组如何匹配这些路由

秩序问题

路由是从“上到下”处理的,因此您必须确保在通用路由之前定义特定路由

在您的情况下,
/pages/*
路由优先,它会像您的
/print
路由一样吞并后续的每个页面路由

因此,更改顺序,将
/print
放在
/pages/*
之前:

Router::connect('/imprint', array('controller' => 'pages', 'action' => 'display', 'imprint'));
Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));
反向路由 您用于生成链接的URL数组看起来与您的任何路由都不匹配。它既不指定
显示
操作,也不指定页面名称参数

生成链接时,请使用适当的URL数组,如@kicaj所示

array('controller' => 'pages', 'action' => 'display', 'imprint')

我不知道这与服务器有什么关系,也不知道你的URL数组如何匹配这些路由

秩序问题

路由是从“上到下”处理的,因此您必须确保在通用路由之前定义特定路由

在您的情况下,
/pages/*
路由优先,它会像您的
/print
路由一样吞并后续的每个页面路由

因此,更改顺序,将
/print
放在
/pages/*
之前:

Router::connect('/imprint', array('controller' => 'pages', 'action' => 'display', 'imprint'));
Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));
反向路由 您用于生成链接的URL数组看起来与您的任何路由都不匹配。它既不指定
显示
操作,也不指定页面名称参数

生成链接时,请使用适当的URL数组,如@kicaj所示

array('controller' => 'pages', 'action' => 'display', 'imprint')

我不知道这与服务器有什么关系,也不知道你的URL数组如何匹配这些路由

秩序问题

路由是从“上到下”处理的,因此您必须确保在通用路由之前定义特定路由

在您的情况下,
/pages/*
路由优先,它会像您的
/print
路由一样吞并后续的每个页面路由

因此,更改顺序,将
/print
放在
/pages/*
之前:

Router::connect('/imprint', array('controller' => 'pages', 'action' => 'display', 'imprint'));
Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));
反向路由 您用于生成链接的URL数组看起来与您的任何路由都不匹配。它既不指定
显示
操作,也不指定页面名称参数

生成链接时,请使用适当的URL数组,如@kicaj所示

array('controller' => 'pages', 'action' => 'display', 'imprint')

我不知道这与服务器有什么关系,也不知道你的URL数组如何匹配这些路由

秩序问题

路由是从“上到下”处理的,因此您必须确保在通用路由之前定义特定路由

在您的情况下,
/pages/*
路由优先,它会像您的
/print
路由一样吞并后续的每个页面路由

因此,更改顺序,将
/print
放在
/pages/*
之前:

Router::connect('/imprint', array('controller' => 'pages', 'action' => 'display', 'imprint'));
Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));
反向路由 您用于生成链接的URL数组看起来与您的任何路由都不匹配。它既不指定
显示
操作,也不指定页面名称参数

生成链接时,请使用适当的URL数组,如@kicaj所示

array('controller' => 'pages', 'action' => 'display', 'imprint')

对不起,那没用。没什么变化。对不起,那没用。没什么变化。对不起,那没用。没什么变化。对不起,那没用。没有什么变化。