在此服务器上找不到请求的URL

时间:2017-05-24 15:29:53

标签: php html .htaccess codeigniter

在我的服务器上托管codeigniter网站时,第一页正常,其他链接显示错误,如下所示。

  

未找到

     

在此服务器上找不到请求的URL / site / ourservices。

     

此外,尝试时遇到404 Not Found错误   使用ErrorDocument来处理请求。

如何解决这个问题?我是初学者。

7 个答案:

答案 0 :(得分:4)

将这些行添加到 .htaccess :(基于codeigniter urls docs

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

答案 1 :(得分:1)

我会帮助你..我几天前遇到过这个问题.. 尝试在.htaccess文件中包含以下代码。

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/system.*
RewriteRule ^(.*)$ index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?/$1 [L]
ErrorDocument 404 index.php

答案 2 :(得分:0)

您的Site.php文件夹中是否有/application/controllers控制器?

或者,您是否有指向现有控制器/功能的路线?

遵循以下两种方法之一:

  1. 创建一个Controller,名称为/application/controller/Site.php。您可以复制Welcome.php控制器以快速创建文件。然后将班级名称更改为Site而不是Welcome。现在,在那里添加一个函数并将其命名为public function ourservices()
  2. -OR -

    1. 转到您的/application/config/routes.php文件并在其中添加一个检查" site / ourservices"并将其指向现有控制器中的某个功能。即$route['site/ourservices'] = 'Welcome/ourservices';,只要您的public function ourservices()控制器中有/application/controllers/Welcome.php功能。
    2. 在控制器中新创建的函数中,调用相应的视图:$this->load->view('location/of/view/file'),它会尝试加载现有文件/application/views/location/of/view/file.php。确保此文件存在。

答案 3 :(得分:0)

在.htaccess(项目根目录)中添加以下行:

RewriteEngine On
RewriteBase /yoursite

RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

答案 4 :(得分:0)

然后保存并重新启动Apache服务器。如果执行此操作后未打开页面,请检查是否启用了Apache重写模块。如果未启用,则在终端中运行此命令

答案 5 :(得分:-1)

如果您在cpanel上上传了网站,请尝试检查确切的错误,因为此问题尚不清楚,因为您可能在代码中包含了site/ourservices.php,但是忘记了再次上传,否则可能有问题header.php

答案 6 :(得分:-1)

在编辑器中打开“ 000-default.config”,在“ /etc/apache2/sites-available/000-default.conf”中可用文件,并将“ AllowOverride”从“ None”更改为“ All”:

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

然后保存并重新启动Apache服务器。如果执行此操作后未打开页面,请检查是否启用了Apache重写模块。如果未启用,则在终端中运行此命令

  1. sudo a2enmod rewrite
  2. sudo service apache2 restart

然后检查您的页面。