【问题标题】:CakePHP not working as expectetd on apacheCakePHP 在 apache 上没有按预期工作
【发布时间】:2017-06-29 19:57:16
【问题描述】:

(*注意“编辑”)

我正在关注教程(书签),在数据源配置之后,我得到了默认页面

到目前为止一切顺利。现在我已经按照烘焙程序进行了操作,并且成功了。但是.. 保留默认页面!
我没有被路由到应用程序..

奇怪的是,使用内置服务器(bin\cake server)显示了预期的结果(访问localhost:8765/bookmarks)。

这似乎是一个 apache 问题 - 但我无法弄清楚。

  1. 我已确认我在应用程序中拥有两个 .htaccess 文件(/.htaccesswebroot/.htaccess
  2. 我已经验证 httpd.conf 设置为Options FollowSymLinks AllowOverride All
  3. 服务器已重新启动。

我正在使用 win7 pro 和 wamp(bitnami 的 dist)


编辑

我也尝试过 VirtualHost。添加到httpd.conf

<VirtualHost *:80>
  ServerName bookmarker
  DocumentRoot "D:\wamp\apache2\htdocs\bookmarker"
  DirectoryIndex index.php
</VirtualHost>

更改了hosts 文件 (127.0.0.1 bookmarker)

得到相同的结果。

【问题讨论】:

  • 您的意思是空的.htaccess 文件吗?
  • 不 - 它们不是空的,它们都被作曲家复制并且看起来完好无损(如教程中所示)
  • 您是否创建了一个带有DocumentRoot 指向磁盘上完整webroot 路径的Apache 主机?
  • 没有。我已经按照教程*。我使用http://localhost/bookmarker 访问该项目。它显示了如图所示的项目.. book.cakephp.org/3.0/en/installation.html#url-rewriting
  • 你检查过路由文件看“/”去哪里了吗?

标签: php apache .htaccess cakephp mod-rewrite


【解决方案1】:

在 routes.php 文件中注释这两行:

$routes-&gt;connect('/', ['controller' =&gt; 'Pages', 'action' =&gt; 'display', 'home']);

$routes-&gt;connect('/pages/*', ['controller' =&gt; 'Pages', 'action' =&gt; 'display']);

并在 routes.php 文件中添加这些行:

$routes-&gt;connect('/:controller/:action/*');

$routes-&gt;connect('/:controller/*', ['action' =&gt; 'index']);

routes.php 文件负责应用程序的路由和重定向。

【讨论】:

    【解决方案2】:

    您需要更新您的 URL 重写配置。在您的 Apache 配置文件 (httpd.conf) 中

    使用

    <Directory />
       AllowOverride none
       Require all denied
    </Directory>
    

    还要确保 rewrite_module 没有被注释(从开头删除 #)。

    【讨论】:

      猜你喜欢
      • 2011-08-30
      • 1970-01-01
      • 1970-01-01
      • 2015-03-20
      • 1970-01-01
      • 2014-03-27
      • 2020-10-13
      • 2016-11-07
      • 2019-11-30
      相关资源
      最近更新 更多