我的蛋糕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>
我应该看看其他什么吗?
答案 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/。
快乐的编码。