2011-08-24 36 views
1

我不確定哪個stackexchange網站最適合這個問題,因爲我可以看到它適合於幾個,特別是根據最終答案。CodeIginter,Mod_Rewrite的URL和.htaccess

我面臨的挑戰是我寫了一個使用CodeIgniter的網站。該網站是一個相當簡單的公司網站。我使用CodeIginter來實現乾淨的URL以及未來擴展網站的能力。還有一個簡單的博客和「畫廊」,它們都是動態的,由數據庫驅動。

在我的開發環境中,網站效果很好。在我的網站的暫存空間(這驅動我的WordPress博客),該網站也適用。

問題是因爲我試圖將網站移動到生產服務器,它停止工作。我已經能夠獲得主頁(使用數據庫和資產),所以我相當肯定這些都是正確的。我將問題縮小到可能的配置問題或mod_rewrite問題。

我必須提出的第一件事(但我不確定這是如何真正相關)是服務器使用CGI/FastCGI,而我的開發和登臺服務器使用「Apache 2.0處理程序」。這種差異會導致我需要修改我的.htaccess文件嗎?我發佈的基礎文件在我的開發/分段環境中工作在這裏:

RewriteEngine on 
RewriteCond $1 !^(index\.php|phpinfo\.php|images|robots\.txt|sitemap\.xml\.gz|sitemap\.xml|assets) 
RewriteRule ^(.*)$ /index.php/$1 [L] 

這很簡單。

當我試圖運行在生產服務器上的網站,與此.htaccess文件,我得到:

不能執行的是請求的腳本 [/ UFS /網站/ C/[絕密]/HTML /的index.php /]:不是一個目錄

當我改變我的.htaccess到:

RewriteEngine on 

RewriteBase/
RewriteCond $1 !^(index\.php|images|robots\.txt|sitemap\.xml\.gz|sitemap\.xml|assets) 

RewriteRule ^html/(.*)$ /index.php/$1 [L] #This WILL Present the home page correctly whereas it used to give an error 

它會給我的主頁,但仍然沒有取得其他的呃頁面工作;相反,我會得到一個404或一個空白頁。

目前,我對這個問題的猜測是我的RewriteRule,但我真的不完全確定。這可能是我的配置中的一個設置。我會繼續徘徊,但我希望有人會在之前的工作中體驗到這一點,這可能會幫助我指出正確的方向(或最好 - 但是)告訴我我做錯了什麼。 :-)

謝謝大家。

+0

你有所有其他的配置文件設置正確嗎?可能是這樣,但檢查你的'config.php'(基本URL,索引頁)和'database.php',這些都是我搬到現場時需要更新的一些東西。 – Chamilyan

回答

0

我不知道有足夠的瞭解的配置,但在黑暗中拍攝 - 因爲你的改變重寫規則也確保您有

$config['index_page'] = '';

config.php

,而不是

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

+0

這並沒有什麼區別。不過謝謝。 –

0

那麼,你會在原來的論壇中看到這個問題千次問。而this post也有類似的情況,每次嘗試刪除索引。PHP可以nitpicky :)看到額外的配置,你可以在該帖子中嘗試。