2012-12-20 90 views
10

我已經安裝在我用下面的htaccess域的根CMS到index.php:htaccess的重定向所有requestes除了子文件夾

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 

這需要照顧友好的URL的重定向一切的index.php 。我的問題是,我有一個有另一個CMS的子文件夾。我需要將子文件夾的請求重定向到正確的文件夾,而不是index.php。

我試過,但它似乎下列不工作

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond $1 !^(sub-folder) 
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 

誰能幫助?

感謝

回答

15

你應該正確驗證,如果請求的URI匹配的子文件夾

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !/subfolder 
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 

在任何情況下,前兩個的RewriteCond的意思是:如果請求的文件名不是一個文件或目錄。這意味着,如果您所引用的文件位於子文件夾中,並且子文件夾位於您的文件根目錄中,則無需執行任何操作。

如果仍然無法工作,使日誌可以幫助你:

RewriteLog "/web/logs/mywebsite.rewrite.log" 
RewriteLogLevel 9 
RewriteEngine On 

避免這種日誌生產

使用的程度將顯着減慢你的Apache服務器的高值!僅在調試時使用大於2的級別的重寫日誌文件!

+0

不知何故,這是行不通的:/ – jribeiro

+0

我的壞。工作正常 – jribeiro

相關問題