如何从url cakephp中删除index.php

时间:2013-07-08 04:59:06

标签: cakephp url-rewriting

我已经在Cakephp 2.3上构建了一个webapp ..在我的locaLhost上所有网址都很好..我可以访问我这样的网址

http://localhost/Cakephp

但现在当我在根文件夹中的服务器上传网站时...我无法像这样访问我的网址

http://www.myweb.com

相反它可以像这样访问

http://www.myweb.com/index.php/login

我认为可能存在的问题是我的app / webroot文件夹中的.htaccess文件

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

我认为这种index.php导致问题..我不知道.htaccess所以不知道如何删除它。

如何从我的网址中获取index.php?

3 个答案:

答案 0 :(得分:2)

检查mod_rewrite模块是否已安装?如果没有在httpd.conf文件中启用它。

找到以下行并删除前面的#(表示取消注释)。

 LoadModule rewrite_module modules/mod_rewrite.so

另外,请不要忘记使用以下命令重新启动apache http服务:

 service httpd restart

以下是从CPanel编辑http.conf文件的步骤:

  1. 以root用户身份登录WHM / cPanel。
  2. 打开“服务配置”部分。
  3. 打开“Apache配置”部分。
  4. 点击“全局配置”以访问httpd.conf的设置,通过cPanel显示。
  5. 进行所需的更改,然后单击“保存”按钮。这将保存更改,然后重新启动Apache以便应用更改。
  6. 了解详情:http://www.ehow.com/how_8696084_edit-httpdconf-cpanel.html#ixzz2YRDEgOMT

    在IIS服务器上Read this link to enable mod_rewrite

答案 1 :(得分:2)

那么,它应该没问题?你已经有了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'));

答案 2 :(得分:1)

在ubuntu上,

sudo a2enmod rewrite
sudo systemctl restart apache2