2014-04-13 114 views
1

提供文件我有一個使用資源標籤(圖片,CSS,腳本)如下靜態HTML網站:重寫資源URL從子目錄

<html> 
    <head><title>htaccess test page</title></head> 
    <body> 
     <img src="/img/img.jpg" alt="..."> 
    </body> 
</html> 

當我打開HTML文件瀏覽器,

http://localhost/img/img.jpg(其可理解返回404)

在哪裏,因爲我想請求到進行::

請求到由

http://localhost/site/img/img.jpg

的目錄結構如下:

- www 
    - site 
     - .htaccess 
     - img 
      - img.jpg 

我一直在尋找一個解決方案,並有一個模糊的想法,RewriteCond是要走的路,但我不能得到這個工作:

RewriteEngine On 
# if requested URI is not a file 
RewriteCond %{REQUEST_FILENAME} !-f 
# serve the file from the img directory, yes, very limited, 
# and requires me to add rules for scripts, css etc. 
RewriteRule ^(.*)$ img/$1 [L] 

任何幫助將不勝感激。 SO爲這個問題返回了不少解決方案,但它們都不起作用。

回答

0

您的解決方案將以這種方式處理每個文件,並將重新路由它。有了這個重寫規則只圖像將被重定向到/網站/ {圖像的路徑在HTML定義}

RewriteRule ([^.]+\.(jpe?g|gif|bmp|png))$ /site/$1 [R=301,L,NC] 

你應該把相似圖片<img src="img/img.jpg" alt="...">

的最終版本是這樣的:

RewriteEngine On 
# if requested URI is not a file 
RewriteCond %{REQUEST_FILENAME} !-f 
# image part 
RewriteRule ([^.]+\.(jpe?g|gif|bmp|png))$ /site/$1 [R=301,L,NC] 
+0

雖然我知道更改'src'屬性可以解決這個問題,但這似乎不起作用,而且我也無法更改''。 – adeelx

+0

開始放置「/」是一種不好的做法。如果這不是你的代碼,那麼它很好。我已經更新了答案併爲我工作。 –