2013-10-02 77 views
0

我想將特定文件夾視爲實際文件夾,而不是作爲codeigniter中的控制器,並且還希望將所有domain.com請求重定向到www.domain。 COM。我有以下htaccess的代碼:將特定文件夾視爲實際文件夾而不是控制器CodeIgniter

<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> 

如果我取消對線(重定向非www到www),所有請求都被視爲控制器 這樣的文件夾(FOLDER_TO_BE_EXCLUDED)也被視爲控制器。我想以實際的方式訪問此文件夾。

如果我不會將非www重定向到www我不能訪問內部頁面上的會話變量。

希望你能理解。

回答

1

的RewriteCond只適用於隨後的重寫規則:您的規則(今評論)是不正確的。

此外,國際海事組織,像這樣定義一個例外的最簡單的方法,就是用像非重寫規則:RewriteRule ^FOLDER_TO_BE_EXCLUDED/ - [L](上重寫規則「頂」)

RewriteEngine On 

# Redirect non-www to www: 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule .* http://www.%{HTTP_HOST}/$0 [R=permanent,L] 

RewriteRule ^FOLDER_TO_BE_EXCLUDED/ - [L] 

# Rewrite all other URLs to index.php/URL 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .* index.php?url=$0 [PT,L] 
1

嘗試添加RewriteCond要貴上重寫規則:

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

這應該阻止它重定向www.yourdomain.com/folder_name到index.php文件。

可以使用|字符添加多個文件夾的條件:

RewriteCond $1 !^(folder_name/|another_folder/) 
相關問題