2014-09-25 63 views
1

我已經創建了一個做工精細下列規則禁止訪問:mod_rewrite的有文件夾的根文件

Options +FollowSymLinks 

RewriteEngine On 
RewriteRule ^([^/]*)/([^/]*)$   /search?type=$1&query=$2 [L] 
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /search?type=$1&query=$2&condition=$3 [L] 

這使得下面的轉換

/title/limitless = /search?type=title&query=limitless 

但現在的問題是我無法訪問來自根文檔中其他文件夾的資源,例如/images/css

我做了什麼錯了?

+0

對CSS/JS只使用絕對路徑在你的CSS,JS,圖片文件,而不是相對的。這意味着你必須確保這些文件的路徑以'http://'或斜槓'/'開始。 – anubhava 2014-09-25 19:43:04

+0

就是這樣,我會用正斜槓來調用這些文件,例如/images/asdk.jpg – 2014-09-25 19:49:47

回答

1

讓你的規則,這樣的忽略重寫的文件/目錄:

Options +FollowSymLinks -MultiViews 
RewriteEngine On 

# skip all rules for real files and directories 
RewriteCond %{REQUEST_FILENAME} -d [OR] 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule^- [L] 

RewriteRule ^([^/]+)/([^/]+)/?$   /search?type=$1&query=$2 [L,QSA] 
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ /search?type=$1&query=$2&condition=$3 [L,QSA] 
+0

它的工作表示感謝,我也會給你另一個問題的答案 – 2014-09-25 20:18:32

+0

不客氣,很高興幫助。 – anubhava 2014-09-25 20:21:07