我在 Ubuntu 14.04 中使用 codeigniter 得到 URL not found 问题错误

Posted

技术标签:

【中文标题】我在 Ubuntu 14.04 中使用 codeigniter 得到 URL not found 问题错误【英文标题】:I get URL not found issue error using codeigniter in Ubuntu 14.04 【发布时间】:2014-10-19 12:46:37 【问题描述】:

我已将我的 codeigniter 项目与 Ubuntu 14.04 集成。在默认控制器(即登录控制器)之后,它给了我 url not found 错误。

请找到以下 .htaccess 文件

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /myapp/

    #Removes access to the system folder by users.
    #Additionally this will allow you to create a System.php controller,
    #previously this would not have been possible.
    #'system' can be replaced if you have renamed your system folder.
    RewriteCond %REQUEST_URI ^system.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    #When your application folder isn't in the system folder
    #This snippet prevents user access to the application folder
    #Submitted by: Fabdrol
    #Rename 'application' to your applications folder name.
    RewriteCond %REQUEST_URI ^application.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    #Checks to see if the user is attempting to access a valid file,
    #such as an image or css document, if this isn't true it sends the
    #request to index.php
    RewriteCond %REQUEST_FILENAME !-f
    RewriteCond %REQUEST_FILENAME !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
    # If we don't have mod_rewrite installed, all 404's
    # can be sent to index.php, and everything works as normal.
    # Submitted by: ElliotHaughin

    ErrorDocument 404 /index.php
</IfModule>  

【问题讨论】:

添加错误和你调用的url “在此服务器上找不到请求的 URL /myapp/admin/validate。” 管理控制器中是否有一个名为 validate() 的方法? 您的控制器文件名是否以大写字母开头? 是的,它在管理控制器中有一个名为 validate() 的方法 【参考方案1】:

好的,你首先需要启用 mod_rewrite

sudo a2enmod rewrite

sudo service apache2 restart

然后打开apache conf文件

sudo gedit /etc/apache2/apache2.conf

如果有注释,请取消注释

AccessFileName .htaccess

您需要将 AllowOverride 更改为 All - 请注意我的根目录是 var/www/html 你的可能只是 var/www

<Directory /var/www/html/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted

重启 apache 就可以了

sudo service apache2 restart

【讨论】:

谢谢!我只会在完成最后一部分之后添加,即“将 AllowOverride 更改为 All”,您需要执行以下操作才能使更改生效:sudo service apache2 restart 谢谢!我只花了 2 个小时试图找到这个解决方案。 已经 3 年了,这个建议对我来说仍然是黄金 +1

以上是关于我在 Ubuntu 14.04 中使用 codeigniter 得到 URL not found 问题错误的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Python3、Ubuntu14.04 中使用 pip 安装 NumPy

ubuntu14.04中的redis-server:绑定地址已经在使用中

为 Ubuntu 14.04 安装和配置 xampp

mbstring Ubuntu 14.04 依赖包冲突

Ubuntu 14.04 中的 production.log 在哪里 - Rails 4

ubuntu 14.04 上的 Csharp 错误