2012-11-08 91 views
1

我剛剛將我的功能codeigniter項目移動到一個新的虛擬主機提供商,現在有挑戰從URL中使用標準的.htaccess模式刪除index.php -改寫。這裏是正在罰款的.htaccess:移動codeigniter項目到一個新的託管服務提供商 - .htaccess和index.php

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 

我發現this討論,但我沒有root權限的Apache服務器,使建議的配置更改。

使用上面提供的.htaccess文件,

任何建議表示讚賞。

+0

由於明顯的問題是unprecise請編輯並真正說明你真正想要的東西:什麼URL格式應該通過瀏覽器是可用的?服務器端應用程序使用什麼內部URL結構?不要期望我們能夠_guess_你想要什麼... – arkascha

回答

0

如果你真的必須同時接受這兩種形式的URL,那麼你需要兩個RewriteRules。一旦接受變體,然後'index.php'部分和一個沒有。

事情是這樣的:

RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^index\.php/(.*)$ index.php/$1 [L] 

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

感謝您的建議,但是我不需要/想要接受URL中的index.php,所以我真的不需要第一個RewriteRule。 – Gunnar

+0

然後我完全不理解你的問題,對不起。 – arkascha

0

你的問題不是很清楚,但像這樣的mod_rewrite規則的共同問題是,有些服務器需要請求作爲查詢傳遞。即你需要改變你的最後一行:

RewriteRule ^(.*)$ index.php?/$1 [L] 
相關問題