2011-12-19 35 views
1

我的網站在我的其他主機上運行良好,但現在我已將此上傳到123reg託管我的重寫網址不再有效。這是我的htaccess文件。主頁顯示,但其他頁面無法正常加載,只顯示主頁。Codeigniter和123reg .htaccess

選項+的FollowSymLinks RewriteEngine敘述 上

RewriteCond $1 !^(index\.php|js|img|fonts|data|css|uploaded|mobile_devices|audioplayer|emails|robots\.txt) 
RewriteRule ^(.*)$ /index.php/$1 [L] 

任何想法?

回答

0

我想這個問題是,你被託管在一個設置上,它提供了PHP實現爲CGI或FastCGI。

你可以試試這個:

RewriteCond $1 !^(index\.php|js|img|fonts|data|css|uploaded|mobile_devices|audioplayer|emails|robots\.txt) 
RewriteRule ^(.*)$ /index.php?/$1 [L] 

。你應該記住編輯您application/config/config.php文件。具體而言,變化:

$config['uri_protocol'] = 'AUTO'; 

要:

$config['uri_protocol'] = 'QUERY_STRING'; 

的原因是CGI/FCGI不提供PHP與PATH_INFO變量,這使得它neccesary的信息作爲查詢字符串發送到CI。

0

我很抱歉,但這個的RewriteCond是無感:

RewriteCond $1 !^(index\.php|js|img|fonts|data|css|uploaded|mobile_devices|audioplayer|emails|robots\.txt) 

因爲第一個參數MUT的東西存在,即:

看到mod_rewrite.html#rewritecond

  • %{ HTTP_USER_AGENT}
  • %{HTTP_REFERER}
  • %{HTTP_COO KIE}
  • %{} HTTP_FORWARDED

...

  • %{} HTTPS

$1涉及到的東西,應該已經預先計算:看here爲更多信息:

使用括號在Pattern中或其中一個CondPatterns中導致 back-references在內部創建。這些可以稍後被 使用字符串$ N和%N(見下面)引用,用於創建 替換字符串和TestString字符串。

您可能已經忘記了您的問題中的某些內容,或者(更糟糕的是)您之前提供者的某些重寫規則。