例如,这是我的域名http://myproject.com/,我使用了
Router::connect('/', array('controller' => 'public', 'action' => 'index'));
在routes.php
中获取我的项目主页主网址http://myproject.com/它正在工作,我想要它,但在我的项目中,其他链接无法正常工作。假设我点击一个链接品牌,它会生成一个这样的链接 - http://myproject.com/public/displayproduct,原始工作链接为http://myproject.com/index.php/public/displayproduct,因此跳过index.php会显示错误。我该怎么做才能跳过index.php并运行我的所有链接?
答案 0 :(得分:0)
如installation guide中所述:
如果您不希望或无法在服务器上启动并运行mod_rewrite(或其他兼容模块), 你需要使用CakePHP内置的漂亮网址。在config / app.php中, 取消注释看起来像这样的行:
'App' => [ // ... // 'baseUrl' => env('SCRIPT_NAME'), ]
同时删除这些.htaccess文件:
/.htaccess webroot/.htaccess
这会使您的网址看起来像
www.example.com/index.php/controllername/actionname/param
而非。{www.example.com/controllername/actionname/param
。
答案 1 :(得分:0)
由于您的.htaccess,似乎发生了这种情况。请确保已启用mod_rewrite
,并且应在Cakephp 2.x中将.htaccess
放置如下:
Cakephp root .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
和webroot .htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>