我需要從AUTO更改$config['uri_protocol']
到PATH_INFO(允許使用網址參數)
我的問題:當我設置$config['uri_protocol']="PATH_INFO";
正規網址,停止工作,我得到的主頁沒有關於我點擊了哪個網站頁面的URL。
print_r($ _SERVER)顯示我添加的url參數只出現在REQUEST_URI中,而不出現在其他$ _SERVER部分中。
我的htaccess是standard one
<IfModule mod_rewrite.c>
RewriteEngine On
# This is different between local host and production server!!!
RewriteBase/
#Removes access to the system folder by users.
#Additionally this will allow you to create a System.php controller,
#previously this would not have been possible.
#'system' can be replaced if you have renamed your system folder.
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
#Checks to see if the user is attempting to access a valid file,
#such as an image or css document, if this isn't true it sends the
#request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
# If we don't have mod_rewrite installed, all 404's
# can be sent to index.php, and everything works as normal.
# Submitted by: ElliotHaughin
ErrorDocument 404 /index.php
</IfModule>
UPDATE:
我改變
RewriteRule ^(.*)$ index.php?/$1 [L]
到 RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
允許網址參數來傳遞。現在,網址參數也出現在
$_SERVER
REDIRECT_QUERY_STRING, QUERY_STRING AND REQUEST_URI
。
問題:我嘗試了所有上述選項的$ config ['uri_protocol'],但仍然無論何時添加URL參數,CI都會給出錯誤404。
注意:我在2臺服務器上嘗試了上述操作。其中一個是centos5/Apache2/Plesk VPS,另一個則是在xampp/Vista上。
嘿,我剛剛通過Google發現了這個問題。我有和你在這裏描述的完全一樣的問題。我需要使用URL查詢字符串,但如果我將$ config ['uri_protocol']更改爲「PATH_INFO」(這是允許查詢字符串工作所需的),則我的所有頁面都會簡單地重定向到主頁。 現在我跟着你在這裏提供的鏈接,但我不明白你的解決方案(它似乎不適用於我)。我可以問你爲什麼設置了$ config ['uri_protocol'],你的.htaccess現在是什麼樣的? 非常感謝。 :) – 2010-06-24 17:37:20
對不起,我想出了一個解決方案(hack hack hack:P)。我的主機(出於某種原因)不允許PATH_INFO變量。所以我只是將ORIG_PATH_INFO值複製到PATH_INFO變量中。 Et瞧! – 2010-06-24 18:08:36
$ _SERVER ['PATH_INFO'] = $ _SERVER ['ORIG_PATH_INFO'];作品不錯 – 2013-04-05 15:03:26