2009-07-15 115 views
3

如何从cakephp url中删除index.php?为了访问我的表单文件夹,我必须提供url:http://localhost/cake_1_2/index.php/forms从cakephp url中删除index.php

我该如何删除index.php?

我从core.php中提到的文件夹中删除了.htaccess,并取消注释了App.baseUrl行。但是,我无法在url中没有index.php的情况下查看页面。

+0

呃......你为什么要那样做? index.php在默认情况下不应该是可见的,但现在你已经删除了.htaccess文件,它将最能被看到。 – 2009-07-15 10:49:50

+0

那我不应该删除这些文件吗?我不想在我的网址index.php。 – Angeline 2009-07-15 11:11:49

回答

2

如果你在CakePHP上使用mod_rewrite(可以获得漂亮的URL),你可以在WEBROOT中创建新的文件夹并访问文件。

例子:

Site/webroot/forms/form.php = http://www.sitename.com/forms/form.php 

CakePHP的mod_rewrite的是设置在WEBROOT检查现有的文件不将它们传递到index.php。

如果您需要启动webroot之外的文件夹,您可能会考虑使用符号链接进行播放。

1

检查mod_rewrite的CakePHP Install guide部分。一旦在Apache中启用,漂亮的URL就可以工作。如果你没有使用Apache,你就会陷入丑陋的URL。

0

你也可以查看这个mod改写教程here。 它有一般的信息,这将有助于在许多情况下的网址清理。还包括一些例子。

1

只需按照下面的下面的步骤来验证它的存在与否

  1. 检查你的根,应用程序,Web根目录包含了实际的.htaccess文件。

  2. 的APACHEE服务器具有以下配置:

    <Directory /> 
    Options FollowSymLinks 
    AllowOverride All# 
    Order deny,allow# 
    Deny from all 
    </Directory> 
    
  3. 而且这条线是uncammented:

    LoadModule rewrite_module libexec/apache2/mod_rewrite.so 
    

然后重新启动apache看到的变化

1

我有同样的问题,并在UR中有index.php L.你正在编辑httpd.conf中的错误区域。此外,确保存在于您的.htaccess文件:/.htaccess,/app/.htaccess和/app/webroot/.htaccess

httpd.conf文件应该是这个样子:

# Leave this area alone, CakePHP docs are wrong 
<Directory /> 
    Options FollowSymLinks 
    AllowOverride None 
    Order deny,allow 
    Deny from all 
</Directory> 

# Match this area 
<Directory "/SomePath/app/webroot"> 
    Options Indexes FollowSymLinks MultiViews 
    AllowOverride All # Turn AllowOverride All on here 
    Order allow,deny 
    Allow from all 
</Directory> 

后做这个,我可以很容易地创建路线&访问页面如:http://localhost/about/

享受!

0

那么,它应该好吗?你已经有mod_rewrite?

如果mod_rewrite被正确加载,.htaccess文件就位和索引。PHP仍然出现在链接那么它最有可能与core.php框架配置文件的问题。

问题原因

对我来说,这是问题App.baseUrl配置选项:

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

解决问题

这里是我固定的问题(以及其他一些与重定向)通过从core.php注释以下行:

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

或蛋糕3+在config/app.php

//'baseUrl' => env('SCRIPT_NAME')