2010-12-11 59 views
1

我的第一個codeigniter項目,我希望能找到一些關於這個URL和函數參數問題的幫助。加號在codeigniter的URL

這是我有一個問題的網址: http://localhost/mysite/info/test/abc+xyz(鍵入直接到地址欄)

控制器:信息 功能:測試

function test($myargs) 
{ 
    echo $myargs; 
} 

我需要的功能來呼應「abc + xyz」但它將CI加號轉換爲下劃線「abc_xyz」,我不想要。

事情我已經嘗試: 我試圖改變

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-'; 
TO 
$config['permitted_uri_chars'] = 'a-z 0-9~+%.:_\-'; 

沒有快樂! 任何幫助非常感謝,謝謝

編輯:我的htaccess的是通常一個刪除的index.php

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?/$1 [QSA,L,NC] 
+0

在對allowed_uri_chars進行更改之前,如果我嘗試訪問帶有+符號的URL,則會收到錯誤「遇到錯誤 您提交的URI已經禁止使用字符。'。你也得到這個嗎?將+號加入列表後,對我來說工作正常。 – 2010-12-11 11:53:54

+0

也許你也可以發佈你在.htaccess文件中定義的任何重寫規則。也許你的URL在它碰到CodeIgniter之前被重寫。 – 2010-12-11 12:04:01

+0

你是對的,斯蒂芬。我從來沒有打擾過檢查htaccess。雖然我只是通常的htaccess刪除index.php,但它似乎是罪魁禍首。當我在url中使用index.php時,codeigniter似乎沒有加號問題。但後來我不想index.php在我的網址,所以這個問題仍然存在 – SIndhu 2010-12-11 19:15:31

回答

1

就像我上面說的意見,該問題可能是URL是越來越重寫的方式通過Apache mod_rewrite。這是可以在我的安裝上正常工作的htaccess文件。

RewriteEngine on 
RewriteCond $1 !^(index\.php) 
RewriteRule ^(.*)$ index.php/$1 [L] 

這與CodeIgniter用戶指南中提出的相同。

你的htaccess文件不適合我。我需要刪除?從它正在生成的URL中運行。

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

當我做了這個改變一切工作正常。

+0

對,斯蒂芬,刪除?解決了這個問題,謝謝。 – SIndhu 2010-12-13 09:36:35