0

特定のフォルダーを 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 にリダイレクトしないと、内部ページのセッション変数にアクセスできません。

ご理解いただければ幸いです。

4

2 に答える 2

1

RewriteCond最後の RewriteRule にa を追加してみてください:

RewriteCond $1 !^(folder_name/)
RewriteRule ^(.*)$ index.php?url=$1 [PT,L] 

これにより、www.yourdomain.com/folder_name が index.php にリダイレクトされなくなります。

|次の文字を使用して、条件にさらにフォルダーを追加できます。

RewriteCond $1 !^(folder_name/|another_folder/)
于 2013-10-02T08:43:47.447 に答える