【问题标题】:How to config .htaccess files of CakePHP in WampServer?如何在 WampServer 中配置 CakePHP 的 .htaccess 文件?
【发布时间】:2011-05-21 23:20:08
【问题描述】:

我对在 CakePHP 中运行我的示例必须做什么感到非常困惑......

我正在使用 WAMP 服务器,它位于“C:/program files/wamp/”中,我为我的项目使用另一个分区:“E:/Projects/”。

有一个学习 CakePHP 的文件夹:“E:/Projects/cakephp/”。我已将所有 CakePHP 提取的内容放在该文件夹中(包括:index.php、.htaccess、readme.txt 和文件夹:app、cake、plugins、vendors)...

首先,我在 Apache 中设置了一个别名 (test) 指向“E:/Projects/cakephp/”,但它不起作用(消息:糟糕!此链接似乎已损坏。)

经过一番搜索,我发现我必须将别名设置为另一个文件夹:“E:/Projects/cakephp/app/webroot/”,它运行良好并显示了第一页CakePHP 框架。

我解决了第一页中的所有问题(使用 CakePHP 手册)。我尝试按照 CakePHP 博客教程...我制作了一个模型、一个控制器和一个视图页面(都与“帖子”主题相关),但是当我尝试查看结果时,我刚刚收到了 WAMP 服务器的第一页(显示地址有问题)

我使用了地址:“http://localhost/test/posts/index”(不起作用) 然后,我尝试将 index.php 放入 url: "http://localhost/test/index.php/posts/index" 并且成功了!

.htaccess 文件当我尝试到达根目录时“http://localhost/test/”工作完美,我不知道出了什么问题!

xx 我在 StackOverflow 中发现了同样的问题,here。它的所有设置都与我的相似,只是他似乎将别名设置为 CakePHP 的根目录,但它对我不起作用!

实际上我找不到如何使用对他有帮助的解决方案 (link),因为我认为我的情况有点不同!

我的以下 cakephp 文件夹的 htaccess 文件如下,

cakephp 的根

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /test/
    RewriteRule ^$ /app/webroot/ [L]
    RewriteRule (.*) /app/webroot/$1 [L]
</IfModule>  

/app

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

/app/webroot

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /test/
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ /index.php?url=$1 [QSA,L]
</IfModule>

希望有人能帮帮我,我真的累死了……

提前感谢您的时间和解决方案!

------------------------------------------ ----------------------------------

哇哦!我找到了答案!我对所有的 htaccess 文件都做了很多更改!如果您也遇到此问题,请先删除所有更改,然后使用此link 作为一个很好的帮助! 希望对你也有帮助!欢呼!很多人! :D

【问题讨论】:

    标签: .htaccess cakephp mod-rewrite wamp wampserver


    【解决方案1】:
    1. 右键单击您的 WAMP 图标 任务栏
    2. 然后将鼠标悬停在 Apache 模块上
    3. 向下滚动并确保勾选了 rewrite_module

    【讨论】:

      【解决方案2】:

      其实我也遇到了和你一样的问题,但是我不记得我是怎么解决的了。

      我可以向您保证,这不是 .htaccess 问题,而是 Apache 的配置错误。

      认为我修改的部分是这个。

      <Directory />
          #Options +Indexes
          Options FollowSymLinks
          AllowOverride All
          #Order deny,allow
          #Deny from all
      </Directory>
      

      请注意我是如何评论某些行的。虽然我无法确认这一点,因为我没有默认配置文件。

      【讨论】:

      • 谢谢,我在 httpd.conf 中做了,但结果没有任何改变!我认为这是一个 htaccess 问题!我使用了许多在其他网站上找到的建议和解决方案,但我无法解决问题!
      • 我确信它不是。尝试安装 WordPress 并检查 URL 结构是否类似于/wp/2010/12/post_title 或更像/index.php/wp/2010/12...
      • 实际上,我的本地主机中有一个 wordpress,而且我的 wordpress 没有问题...效果很好
      • 好的,我刚刚看到你修改了默认的 .htaccess 文件。尝试再次下载 CakePHP 并将所有内容解压缩到一个新文件夹,然后通过 localhost 访问该文件夹。告诉我它是如何工作的。
      • 您的建议帮助我找到了错误!非常非常感谢你。 ;) 我找到了一个对我有帮助的非常好的博客,我把它放在了我的问题的底部。
      【解决方案3】:

      我遇到了同样的问题,这是对我有用的解决方案

      这是我在 wamp 服务器中的cakephp.conf

      Alias /cakephp "d:/wamp/apps/cakephp/app/webroot" 
      
      <Directory "d:/wamp/apps/cakephp/app/webroot">
         Options FollowSymLinks
         AllowOverride all
         Require local
      </Directory>
      

      这是 /cakephp 中的 .htaccess 文件(未更改任何内容)

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

      这是 /cakephp/app 中的 .htaccess 文件(未更改任何内容)

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

      这是 /cakephp/app/webroot 中的 .htaccess 文件(已更改)

      <IfModule mod_rewrite.c>
          RewriteEngine On
          RewriteBase /cakephp
          RewriteCond %{REQUEST_FILENAME} !-d
          RewriteCond %{REQUEST_FILENAME} !-f
              RewriteRule ^(.*)$ /webroot/index.php [QSA,L]
      </IfModule>
      

      我刚刚添加了这一行

      RewriteBase /cakephp
      

      在此之后我能够启动 url localhost/cakephp/index.php/posts/index

      希望这将帮助您开始使用 WAMP 服务器使用 CakePhp

      【讨论】:

        【解决方案4】:

        使用

          RewriteRule ^posts/(.*)  index.php/posts/index
        

        【讨论】:

        • 感谢您的帮助,我将它放在我的 htaccess 文件中,但它在结果页面中显示错误消息(控制器错误)...我查看了许多不同的解决方案,但他们没有改变这一点行 "RewriteRule ^(.*)$ /index.php?url=$1 [QSA,L]" 但他们中的大多数人都试图改变 RewriteBase ...我尝试了很多东西,但没有任何好的结果。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-04-20
        • 2015-04-10
        • 2021-09-09
        • 2012-03-15
        • 2011-01-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多