这是最重复的问题之一,但我没有得到它,不得不问。我使用CI 2.我通过以下步骤从URL中删除了index.php:
config.php
我设置的
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';
routes.php
我设置的
$route['default_controller'] = "InterviewController";
的
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
mod_rewrite
。因此,在index()
的{{1}}方法中,我加载了InterviewController
视图。之后,当我只键入域名时,它被称为addInterview.php
作为站点的默认页面。当我按addInterview
页面上的保存按钮时出现问题,该按钮必须从addInterview
拨打saveInterview()
。但在这一步中,我得到InterviewController
。 The requested URL was not found on this server (404) error
甚至没有被召唤过。但如果我自己键入domainname / index.php / InterviewController / saveInterview一切正常。好像我只是从默认页面中删除了saveInterview()
,而不是从我网站的所有页面中删除了index.php
。您有什么推荐的吗?
答案 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]