我正在使用.htaccess刪除我的CodeIgniter項目的index.php。我在本地主機上正常工作,但在託管時失敗。我的主機顯示我的結構是這樣的:.htaccess RewriteBase不能正常工作
/
-- domains
---- mydomain.com
------ public_html
-------- .htaccess
-------- (the rest of my CI site)
在本地主機我的.htaccess是這樣的:
RewriteEngine on
RewriteBase /myCIfolder/
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
我曾嘗試:
RewriteBase/
RewriteBase /domains/
RewriteBase /domains/mydomain.com/
RewriteBase /domains/mydomain.com/public_html/
RewriteBase /mydomain.com/
RewriteBase /mydomain.com/public_html/
RewriteBase /public_html/
,但我不能讓它起作用。我詢問了我的主機提供商,他們說MOD_REWRITE已經啓用。
任何想法高度讚賞。
編輯1
我的索引頁(mydomain.con - 主控制器,指數函數)可正常載入,但任何其他控制器出現故障。
隨着
RewriteBase/
它顯示了我的錯誤:
No input file specified.
任何其他RewriteBase顯示:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
Apache/2 Server at mydomain.com Port 80
你是什麼意思的「不起作用」?是否有任何錯誤消息,你可以發佈(和apache產生什麼)?如果public_html是你的文檔根目錄,並且在這個目錄下找到了index.php文件,它應該和RewriteBase /一起工作,因爲這是在URL到你的根目錄和你的RewriteRule的結果之間輸入的內容。 %{REQUEST_FILENAME ...告訴規則只處理任何不是文件或目錄的東西,這應該是好的,因爲你想把任何請求傳遞給你的前端控制器index.php,是否正確? – Fuzzzzel
是的。我已經更新了我的問題。 RewriteBase /顯示「沒有指定輸入文件」。只有消息。並感謝你爲我澄清這一點。 – Cassandra