使用.htaccess控制CakePHP的重定向

use*_*414 5 apache .htaccess mod-rewrite post cakephp

我在Windows7 + Apache2.2上安装了cakePHP,并尝试了博客教程.

现在我一直在混淆重定向控制与.htaccess.

我已经按照教程的说明设置了.htaccess.

htdocs
  .htaccess
  app
    .htaccess
     webroot
        .htaccess
Run Code Online (Sandbox Code Playgroud)

Eache .htaccess文件如下.

[在htdocs下]

<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

[在应用程序下]

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

[根据wabroot]

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

但是错误发生了,这里是error.log中的消息

client denied by server configuration: :/Apache2.2/htdocs/app/webroot/.htaccess
Run Code Online (Sandbox Code Playgroud)

怎么了 ?

本教程应用程序使用以下URL.

http://mydomain/posts/index   // show index page
http://mydomain/posts/view/3  //show an article selected from index(3 means ID number)
http://mydomain/posts/add     //show a page for posting new articl
http://mydomain/posts/edit/3   //show a page for e
http://mydomain/posts/delete/3   //delete an article selected from index 
Run Code Online (Sandbox Code Playgroud)

.htaccess 当URL为/ index和/ view/3时,通常会控制重定向.

但是如果URL是/ add,/ edit/3和/ deleteapache没有将它们重定向到index.php.

实际操作文章add,editdelete成功处理.

而且add,editdelete使用POST方法

我想如果它的方法是POST重定向将失败.

Faz*_*sel 1

您的文件夹结构似乎不太好...您必须在 htdocs 下创建一个项目名称并将 Cakephp 文件复制到该文件夹​​。喜欢-

htdocs
   --myapplication
      .htaccess
     -- app
          .htaccess
     -- webroot
          .htaccess
Run Code Online (Sandbox Code Playgroud)