如何从cakephp url中删除index.php?要访问我的表单文件夹,我必须提供网址:http://localhost/cake_1_2/index.php/forms。
如何删除index.php?
我从core.php中提到的文件夹中删除了.htaccess,并取消注释了App.baseUrl行。然而,如果没有url中的index.php,我将无法查看该页面。
答案 0 :(得分:2)
如果您正在使用带有mod_rewrite的CakePHP(以获得漂亮的URL),您可以在WEBROOT
内创建新文件夹并访问文件。
示例:
Site/webroot/forms/form.php = http://www.sitename.com/forms/form.php
CakePHP的mod_rewrite设置为检查WEBROOT
中的现有文件和 NOT 将它们传递给index.php。
如果你需要到达webroot之外的文件夹,你可以考虑使用符号链接。
答案 1 :(得分:1)
检查CakePHP Install guide部分是否有mod_rewrite。一旦在Apache中启用,漂亮的URL就可以工作了。如果您没有使用Apache,那么您就会遇到丑陋的URL。
答案 2 :(得分:1)
只需按照以下步骤验证是否存在
检查root,app,webroot包含实际的.htaccess文件。
apachee服务器具有以下配置:
<Directory />
Options FollowSymLinks
AllowOverride All#
Order deny,allow#
Deny from all
</Directory>
此行也未被注释:
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
然后重新启动apache
以查看更改
答案 3 :(得分:1)
我有同样的问题,并在URL中有index.php。您正在编辑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>
完成此操作后,我可以轻松创建路线&amp;访问页面,例如:http://localhost/about/
享受!
答案 4 :(得分:0)
你也可以查看这个mod重写教程here。 它有一般信息,在许多情况下对网址清理很有用。还有一些例子。
答案 5 :(得分:0)
那么,它应该没问题?你已经有了mod_rewrite?
如果正确加载mod_rewrite,.htaccess文件就位,index.php仍然出现在链接中,那么它很可能是core.php框架配置文件的问题。
问题原因
在我的情况下,它是App.baseUrl配置选项的问题:
Configure::write('App.baseUrl', env('SCRIPT_NAME'));
解决问题
以下是我通过在core.php中注释掉以下行来解决该问题(以及其他少数重定向问题)的方法:
// Configure::write('App.baseUrl', env('SCRIPT_NAME'));
或在config / app.php
上的蛋糕3+//'baseUrl' => env('SCRIPT_NAME')