特定のフォルダーを codeigniter のコントローラーとしてではなく、実際のフォルダーとして扱い、すべての domain.com リクエストを www.domain.com にリダイレクトしたいと考えています。次の htaccess コードがあります。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond $1 !^(FOLDER_TO_BE_EXCLUDED)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Redirect non-www to www:
#RewriteCond %{HTTP_HOST} !^www\. [NC]
#RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
# Rewrite all other URLs to index.php/URL
RewriteRule ^(.*)$ index.php?url=$1 [PT,L]
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 index.php
</IfModule>
行のコメントを外すと (Redirect non-www to www)、すべてのリクエストがコントローラーとして扱われるため、フォルダー (FOLDER_TO_BE_EXCLUDED) もコントローラーとして扱われます。このフォルダに実際のフォルダとしてアクセスしたい。
非 www を www にリダイレクトしないと、内部ページのセッション変数にアクセスできません。
ご理解いただければ幸いです。