2015-11-06 78 views
0

我正在爲Web資源管理編寫一個.htaccess文件。Apache RewriteRule模式

我想URI的這種模式用於靜態資源

^.*/web-console/static/(.*)$ 

而且,我的重寫規則如下。

RewriteRule "^.*/web-console/static/(.*)$" "resources/floworks-web-console-1.0/static/$1" [L] 

而且,我在下面要求URI

http://myhost/shop/web-console/static/css/default.css 

但Apache服務器沒有匹配URI。
如果我刪除「/ web-console」,Apache工作正常。
下面是重寫規則

RewriteRule "^.*/static/(.*)$" "resources/floworks-web-console-1.0/static/$1" [L] 

什麼是問題?

附錄

這是我的目錄結構

網絡基地 - /數據/網絡
網站基地 - /數據/網站/店
htaccess的 - /data/web/shop/.htaccess
路由器腳本 - /data/web/shop/route.php
靜態資源 - /data/web/shop/resources/floworks-web-console-1.0/static
css文件 -/data/web/shop/resources /floworks-web-console-1.0/static/css/default.css

所以,我希望響應的靜態資源,如果URI啓動/店/ Web的控制檯/靜態
而且,另一種情況是通過使用到路由器腳本「重寫規則。* route.php [L]」

+0

所以web控制檯不是一個真正的目錄? –

+0

是的,這不是一個真正的 – ordinaryparksee

回答

0

你應該可以這樣做。如果你在子文件夾shop中有這個.htaccess,你應該添加rewritebase。

RewriteEngine On 
RewriteBase /shop/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule "^web-console/static/(.*)$" "resources/floworks-web-console-1.0/static/$1" [L] 
+0

對不起,它不起作用 – ordinaryparksee

+0

我需要更多的解釋比不工作或我無法幫助您排除故障。什麼不起作用?任何錯誤? .htaccess文件位於何處?你的資源目錄在哪裏,根目錄下還是商店下? –

+0

哦,對不起,我的描述。我的意思是重寫不能追上URI。如果這項工作顯示了我的default.css文件內容,但它沒有捕獲和工作如下語句「RewriteRule。* route.php [L]」。 – ordinaryparksee

0

我發現自己。

RewriteRule "web-console/static/(.*)$" "resources/floworks-web-console-1.0/static/$1" [END] 

我從L該標誌更改爲END
感謝。