Codeigniter 2:在此服务器上找不到请求的URL(404)错误。 CI没有以正确的方式路由

时间:2013-03-19 05:57:36

标签: php codeigniter view routing url-routing

这是最重复的问题之一,但我没有得到它,不得不问。我使用CI 2.我通过以下步骤从URL中删除了index.php:

  1. config.php我设置
  2. $config['index_page'] = '';
    
    $config['uri_protocol'] = 'REQUEST_URI';
    
    1. routes.php我设置
    2. $route['default_controller'] = "InterviewController";
      
      1. 这是我的.htaccess
      2. RewriteEngine on
        RewriteCond $1 !^(index\.php|img|robots\.txt|css|js|libraries/ckeditor|upload)
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ /index.php/$1 [L]
        addDefaultCharset UTF-8
        
        1. 我在网络服务器上启用了mod_rewrite
        2. 因此,在index()的{​​{1}}方法中,我加载了InterviewController视图。之后,当我只键入域名时,它被称为addInterview.php作为站点的默认页面。当我按addInterview页面上的保存按钮时出现问题,该按钮必须从addInterview拨打saveInterview()。但在这一步中,我得到InterviewControllerThe requested URL was not found on this server (404) error甚至没有被召唤过。但如果我自己键入domainname / index.php / InterviewController / saveInterview一切正常。好像我只是从默认页面中删除了saveInterview(),而不是从我网站的所有页面中删除了index.php。您有什么推荐的吗?

4 个答案:

答案 0 :(得分:3)

领先的斜线可能会导致您的问题。

更改

RewriteRule ^(.*)$ /index.php/$1 [L]

RewriteRule ^(.*)$ index.php [L]

答案 1 :(得分:2)

试试这个......为我工作

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

答案 2 :(得分:1)

将.htaccess文件编辑为>

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
</IfModule>

答案 3 :(得分:0)

将重写规则更改为

RewriteRule ^(.*)$ /YOUR_CI_PROJECT_NAME/index.php/$1 [L]