【问题标题】:how to remove index.php from url cakephp如何从 url cakephp 中删除 index.php
【发布时间】:2013-07-08 04:59:05
【问题描述】:

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

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?

【问题讨论】:

  • 您所描述的意味着 mod_rewrite 未启用 - 这也可能意味着您的主机已禁用 .htaccess 文件。如果不修改 apache 配置,您将无法解决这个问题,这在共享主机上(您是否在共享主机上?)几乎肯定是不可能的。

标签: cakephp url-rewriting


【解决方案1】:

那么,应该没问题吧?你已经有 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】:

    检查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 以便应用更改。

    阅读更多:http://www.ehow.com/how_8696084_edit-httpdconf-cpanel.html#ixzz2YRDEgOMT

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

    【讨论】:

    【解决方案3】:

    在 ubuntu 上,

    sudo a2enmod rewrite
    sudo systemctl restart apache2
    

    【讨论】:

      猜你喜欢
      • 2010-11-10
      • 2012-05-15
      • 1970-01-01
      • 1970-01-01
      • 2013-05-15
      • 2019-08-16
      相关资源
      最近更新 更多