2013-10-05 42 views
0

使用codeigniter時,我遇到了一些困難。這是關於URL中的index.php文件。在CodeIgniter的URL中禁用index.php

CodeIgniter服務於所有使用index.php的頁面。所以,我們的網址應該像下面:

http://www.example.com/codeigniter/index.php/something 

我想通過編輯config.php文件,並創建一個.htaccess文件刪除從URL中index.php。從

$config['index_page'] = 'index.php'; 

改變配置來

$config['index_page'] = ''; 

之後我能夠沒有的index.php就這樣跑我的項目:

http://www.example.com/codeigniter/something 

所以,現在,該鏈接工作 - 但它也適用於index.php片段。我也可以看到地址爲http://www.example.com/codeigniter/index.php/something的組件。

我的.htaccess文件是:

RewriteEngine on 
RewriteCond $1 !^(index\.php|resources|robots\.txt) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

現在,我想讓我的網站只提供沒有鏈接中index.php。我不希望這個網站與鏈接中的index.php文件一起運行。我想要http://www.example.com/codeigniter/something完美運行,並且http://www.example.com/codeigniter/index.php/something不能運行。我怎樣才能做到這一點?

+0

可以粘貼您的虛擬主機的配置? – Mauro

+0

對不起,什麼是vhost配置?我正在使用xampp在localhost中託管我的項目 – user2849692

回答

1

你可以嘗試添加在你.htaccess文件中的以下

RewriteCond %{THE_REQUEST} codeigniter\/index\.php 
RewriteRule codeigniter\/index\.php -[F] 

基本上,這個規則告訴如果請求包含笨/ index.php文件

0

添加一個上面這條規則返回禁止迴應您已經有:

RewriteCond %{THE_REQUEST} \ /codeigniter/index\.php([^\?\ ]*) 
RewriteRule^/codeignighter/%1 [L,R=301] 

而且它會將其中有index.php的請求重定向到沒有它的URL。

1

試試這個

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

將代碼放在你的根文件夾htaccess.Please讓我知道,如果你面對任何問題

0

您應該添加?之後index.php,所以它在所有主機。這是我的htaccess

RewriteEngine On 
#RewriteBase/ maybe you don't need it, depends on the hosting 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond $1 !^(index\.php|robots\.txt|humans\.txt|license\.txt|sitemap\.xml|assets) 
RewriteRule ^(.*)$ index.php?/$1 [L] 

相關問題