蛋糕.htaccess重写几乎工作

时间:2013-09-13 11:55:16

标签: .htaccess cakephp

我的蛋糕2.2.0应用程序中的重写规则存在问题。

Mod_rewrite好像在这里工作:

myapp.com/listings有效

但是cake生成的链接构造了这种类型的URL,它也可以工作但不会被重写:

myapp.com/app/webroot/index.php/listings

我尝试了很多已发布的选项,但似乎没有任何效果?

我的apache配置设置如下:

<Directory />
    Options FollowSymLinks
    AllowOverride All
</Directory>

所有.htaccess文件都是蛋糕安装的标准文件吗?

Webroot .htacess:

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

App .htaccess:

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

root .htaccess:

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

我应该看看其他什么吗?

2 个答案:

答案 0 :(得分:0)

这是您在生成链接时应该能够在cakephp中修复的内容。您拥有的htaccess文件不会更改页面内容中的链接。

如果由于某种原因,你无法在cakephp中执行此操作,那么您可以将其添加到您的Webroot htaccess,位于RewriteEngine On行的正下方:

RewriteCond %{THE_REQUEST} \ /app/webroot/index.php/([^\ ]+)
RewriteRule ^ /%1 [L,R=301]

,这会将浏览器重定向到较短的网址。

答案 1 :(得分:0)

如果其他人看到这个,我的问题是/app/Config/core.php中的这一行被取消注释:

配置:: write('App.baseUrl',env('SCRIPT_NAME'));

评论它从我的网址中删除了abs URL /app/webroot/index.php/。

快乐的编码。