2011-05-11 70 views
3

主要站點運行WordPress的.htaccess的的.htaccess中的子文件夾

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

我要去子目錄site.com/online/ 創建的CodeIgniter應用如果只是在子文件夾中是行不通增加CI名.hta文件。 CI .htaccess:

RewriteEngine on 
RewriteCond $1 !^(index\.php|robots\.txt|img|styles|js) 
RewriteRule ^(.*)$ /index.php?/$1 [L] 

是否可以合併兩個.htaccess文件或在CI子文件夾中使用.htaccess執行某些操作? 謝謝。

UPD。 謝謝你的答案,我已經嘗試過所有的變種,並最終將項目移至子域。

回答

1

試試這個爲笨的.htaccess:

RewriteEngine on 
RewriteBase /online 
RewriteCond $1 !^(index\.php|robots\.txt|img|styles|js) 
RewriteRule ^(.*)$ /index.php?/$1 [L] 

否則所有該子文件夾的請求將被重定向到WordPress的。

3

的第一件事情,你的.htaccess應該是這樣的:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{THE_REQUEST} !^GET\s/+online/ [NC] 
RewriteRule . /index.php [L] 
</IfModule> 

#Then add this for CI handling in the same .htaccess 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond $1 !index\.php [NC] 
RewriteRule ^online/(.*)$ online/index.php?/$1 [L,NC] 

然後你就可以刪除(或重命名)的.htaccess在online子文件夾。

+0

謝謝你的回答。當我加入這個,布勞爾返回到404,如果類型/在線/首頁/ – Tuco 2011-05-12 01:27:28

+0

如果'在線/首頁/'是一個有效的目錄名和你希望它是爲'在線/的index.php?/ online'那麼上述規則辦理需要通過移除條件'RewriteCond%{REQUEST_FILENAME}!-d'來放鬆。現在試試,我編輯了我的答案。 – anubhava 2011-05-12 02:53:46

+0

嗨。瀏覽器再次重定向到未找到 – Tuco 2011-05-12 05:29:59