我有一個CodeIgniter項目放置在一個域的子文件夾。 我希望有我的.htaccess(放置在笨子文件夾),以做到以下幾點,對涉及的CodeIgniter目錄中的任何網址:強制結束斜槓,並刪除index.php與子文件夾中的htaccess
- 從任何URL刪除「的index.php」。
- 始終爲任何網址添加尾部斜線。
目前我的.htaccess這個樣子:
RewriteEngine on
RewriteBase /ci_folder/ #This is the CI Subfolder
# Get rid of index.php
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
# Add trailing slash
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]
的問題是,它的唯一的工作部分; index.php被正確刪除,但是當添加結尾斜槓時,不是重定向到「固定」url,而是重定向到本地路徑fx。
domain.com/ci_folder/method
被重定向到:
domain.com/home/sites/domain.com/public_html/ci_folder/index.php/method/
其應該是:domain.com/ci_folder/method/代替! (也不含任何的index.php)
---編輯---
這爲我做:
RewriteEngine on
RewriteBase /ci_folder/
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [L]
RewriteCond %{REQUEST_URI} !(.*)/$
# dont rewrite if there was posted here!
RewriteCond %{REQUEST_METHOD} !POST
RewriteRule ^(.*[^/])$ $1/ [L,R=301]
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
找到解決方案meself。 – KMN 2012-08-16 18:31:06
你應該在下面添加你的答案,並接受它,所以這個問題可以被標記爲關閉。 – fedmich 2013-03-01 00:11:43