我需要做些什么来修复我的cakephp路线

时间:2011-12-28 21:03:57

标签: .htaccess cakephp

目前,当我点击我网站上的链接时,它正在创建一个看起来像这样的网址

http://domainname.com/app/webroot/index.php/links

这会导致页面加载错误。如果我手动编辑网址看起来像这样

http://domainname.com/links

一切都正确加载。我的三个.htaccess文件看起来像这样 /

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

</IfModule>

应用程序/

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

应用程序/根目录/

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

我需要在这里改变一些东西吗?我应该在其他地方进行这些更改吗?该网站托管在godaddy的共享主机上。我不知道这与它有什么关系。

更新: 这是链接。

<?php echo $this->Html->link('Portfolio', array('controller' => 'images', 'action' => 'index'))?>

我也尝试从所有文件中删除RewriteBase /行。这没有用。

这也是我的routes.php文件中的内容。

Router::connect('/', array('controller' => 'posts', 'action' => 'index'));

3 个答案:

答案 0 :(得分:0)

尝试取出所有RewriteBase行

答案 1 :(得分:0)

你可以检查几件事:

  1. mod_rewrite可用且正常工作
  2. Apache配置允许 这些选项:索引MultiViews FollowSymLinks
  3. RewriteBase in 如果你有,你的.htaccess实际上会重写为正确的目录 多个cakephp应用程序。例如。我必须使用RewriteBase /〜shaz / web应用/ MyApp的/
  4. 此外,google上甚至还有堆栈上的大量帖子,因此可能值得确保您拥有与其他人相同的“默认”设置/环境,并从那里开始工作。

    如果所有其他方法都失败了,您可以使用config / core.php文件中提供的替代“漂亮”网址设置。

答案 2 :(得分:0)

我必须在core.php文件中注释掉以下行。

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

我忘记了我必须取消注释才能让我的开发服务器正常工作。