Cakephp:使用Router :: connect

时间:2016-06-27 08:16:26

标签: php cakephp

例如,这是我的域名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并运行我的所有链接?

2 个答案:

答案 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>