2012-12-28 90 views
0

如下我有一個.htaccess文件,上面寫着:重寫規則爲一個圖像

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

有上的index.php,應始終顯示,但是當我瀏覽到一個重寫的路徑,該圖像對該圖像的請求是以該路徑爲前綴的。所以,「類別」部分,雖然它應該仍然顯示我的foo.png圖像/ foo.png現在有路徑categories/images/foo.png

我可以使用.htaccess重寫規則嚴格解決這個問題嗎?如果是這樣,怎麼樣?

回答

1

一個更簡單的解決方案是在您的網站的根目錄下基於img元素使用src。 (如果它只是一個圖像...)

例如: http://www.site.com

<img src="/images/header.jpeg" /> 

這將始終是指http://www.site.com/images/header.jpeg,不管你現在的文件夾

+0

即使它避免使用.htaccess作爲解決方案,我會將其標記爲答案。依靠.htaccess是我的錯誤,實際上這個.htaccess文件會毀掉我的整個網站。該網站實際上甚至不應該在類別頁面上引用圖像,所以這個問題實際上是沒有意義的。 – Smittles

0

這應該對圖像的任何請求,並改寫它去根/images/foo.png:

RewriteRule ^.*/images/foo.png$ /images/foo.png 

需要注意的是,如果你有位於某處/圖片/ foo.png不同的圖像,除非你爲它寫了特定的例外,否則請求也會被重寫爲/images/foo.png。

0

這聽起來就像一個相對與絕對的URL混淆。如果路徑類似http://domain.com/category/post/name,則相對URI基數爲/category/post,並且由Web服務器返回的內容中提供的所有相關鏈接都將由瀏覽器預先設置。爲了告訴瀏覽器的真正 URI的基礎是什麼,你可以在你的頭有這樣的:

<base href="/"> 

或者,你可以簡單地改變你的所有相對URL爲絕對URL。