笨2:请求的URL没有此服务器(404)错误上找到。 CI是不是路由的正确方法(Codeigni

2019-08-17 18:04发布

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

  1. config.php我设置

$config['index_page'] = '';

$config['uri_protocol'] = 'REQUEST_URI';
  1. routes.php我设置

$route['default_controller'] = "InterviewController";
  1. 这里是我的.htaccess

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在Web服务器上。

因此,在index()的方法InterviewController ,我加载addInterview.php视图。 在此之后,它被称为addInterview作为网站的默认页面,当我刚键入域名。 当我按下保存按钮出现问题addInterview页面必须调用saveInterview()InterviewController 。 但在这一步,我得到The requested URL was not found on this server (404) errorsaveInterview()甚至没有被调用。 但是,如果我自己键入域名/ index.php文件/ InterviewController / saveInterview一切正常。 好像我删除index.php刚刚从默认的页面,而不是从我的网站的所有网页。 您有什么推荐的吗?

Answer 1:

领先的斜线可能会造成您的问题。

更改

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

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


Answer 2:

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

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


Answer 3:

edite你的.htaccess文件>

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


Answer 4:

更改重写规则

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


文章来源: Codeigniter 2: The requested URL was not found on this server (404) error. CI isn't routing the right way