2013-03-19 44 views
1

這是最重複的問題之一,但我沒有得到它,不得不問。我用CI 2.我刪除的index.php從URL中使用以下步驟:Codeigniter 2:在此服務器(404)錯誤中找不到請求的URL。 CI不是正確的路線

  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服務器上。

所以在InterviewControllerindex()方法,我加載addInterview.php視圖。之後,當我輸入域名時,它被稱爲addInterview作爲網站的默認頁面。當我按addInterview頁面上的保存按鈕時發生問題,該頁面必須從InterviewController調用saveInterview()。但在這一步我得到The requested URL was not found on this server (404) error。甚至還沒有被調用。但如果我自己輸入domainname/index.php/InterviewController/saveInterview一切正常。好像我從默認頁面中刪除index.php,但不是從我的網站的所有頁面中刪除index.php。你有什麼建議?

回答

3

導致的斜槓可能會導致您的問題。

變化

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

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

我試過了。不起作用 – 2013-03-19 06:34:41

+0

它爲我工作。謝謝 – 2014-04-21 05:51:33

+0

在這裏解答你的問題http://stackoverflow.com/questions/33062142/why-codeigniter-show-the-requested-url-was-not-found-on-this-服務器/ 41862237#41862237 – 2017-01-25 21:54:49

0

更改重寫規則

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

我爲apache設置了一個虛擬主機,所以我的應用程序文件夾是apache的文件根目錄,所以我不需要在index.php之前有YOUR_CI_PROJECT_NAME – 2013-03-19 06:24:11

1

試試這個...它爲我工作

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

我爲1個虛擬主機設置了apache,所以我的應用程序文件夾是文檔根目錄的apache,所以我不需要在index.php之前有UR_Folder_Path – 2013-03-19 06:23:43

1

將您的.htaccess文件修改爲>

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