1

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

  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在网络服务器上启用。

所以在index()方法中InterviewController,我加载了addInterview.php视图。addInterview之后,当我只输入域名时,它被称为网站的默认页面。当我在addInterview必须调用saveInterview()的页面上按下保存按钮时会出现问题InterviewController。但是在这一步中我得到了The requested URL was not found on this server (404) error. saveInterview()甚至没有被调用。但是,如果我自己输入 domainname/index.php/InterviewController/saveInterview 一切正常。好像我index.php只是从默认页面中删除,而不是从我网站的所有页面中删除。你有什么建议吗?

4

4 回答 4

3

前导斜杠可能会导致您的问题。

改变

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

RewriteRule ^(.*)$ index.php [L]
于 2013-03-19T06:05:12.620 回答
2

试试这个……它为我工作

RewriteEngine on
RewriteBase /Ur_Folder_Path/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /Ur_Folder_Path/index.php?/$1 [L] 
于 2013-03-19T06:17:35.407 回答
1

将您的 .htaccess 文件编辑为>

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
</IfModule>
于 2014-02-12T10:01:26.597 回答
0

将重写规则更改为

RewriteRule ^(.*)$ /YOUR_CI_PROJECT_NAME/index.php/$1 [L]
于 2013-03-19T06:09:27.230 回答