【问题标题】:Rewriting cakephp path in cakephp 3.0在 cakephp 3.0 中重写 cakephp 路径
【发布时间】:2016-01-06 05:00:22
【问题描述】:

我需要从 URL 中删除 app 文件夹。 示例 URL 为:mydomain.com/cake_app/vechicles/add 我需要的是mydomain.com/vechicles/add

注意!在 mydomain.com 的根目录中,我正在运行 WordPress 安装,因此如果 URL 中有 vechicles 控制器名称,我只需将用户路由到蛋糕应用程序。

我找到了很多关于如何通过 .htaccess 文件执行此操作的示例,但这些示例适用于 CakePHP

【问题讨论】:

  • 只需将 cake_app 的内容上移一个文件夹即可。您已经找到的“许多示例”仍然适用。另请注意,这个问题可能意味着您正在使用开发风格安装 - you shouldn't be doing that
  • 我不想将它上移一个文件夹的原因是我在根目录下安装了 wordpress。感谢您提供安装链接。
  • 这是一个相当重要的细节要省略 - 请编辑问题并指出哪些 url 应该重写,哪些不应该重写。在目前缺乏信息的情况下,你有一个逻辑冲突。
  • 感谢指导,刚刚更新了问题。

标签: wordpress .htaccess cakephp url-rewriting cakephp-3.0


【解决方案1】:

将 .htaccess 添加到您的域根文件夹:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule    ^$    cake_app/    [L]
    RewriteRule    (.*) cake_app/$1    [L]
</IfModule>

更新

注意!在 mydomain.com 的根目录中,我正在运行 WordPress 安装,因此如果 URL 中有 vechicles 控制器名称,我只需将用户路由到蛋糕应用程序。

在 .htaccess 中在任何 wordpress 规则之前添加此规则。

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule    ^vechicles$    cake_app/    [L]
    RewriteRule    ^vechicles/(.*) cake_app/$1    [L]
</IfModule>

现在 mydomain.com/vechicles/ 显示您的 cake_app。内部蛋糕应用程序制作路由

CakePHP 2

Router::connect('/add', array('controller' =&gt; 'vechicles', 'action' =&gt; 'add') );

CakePHP 3

$routes->connect('/add', ['controller' => 'vechicles', 'action' => 'add']);

【讨论】:

  • 这行得通,但是如果我转到安装了 WordPress 的域的根目录,它会直接将我带到蛋糕应用程序,我需要的是 WordPress。
  • 你改变了你的问题。
  • 是的,我刚刚更新了它。很抱歉没有从一开始就直接提供。
  • 现在作为一个魅力。谢谢。
猜你喜欢
  • 2016-07-18
  • 2015-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-10
  • 2017-05-28
  • 1970-01-01
  • 2015-06-15
相关资源
最近更新 更多