2011-11-16 39 views
0

/en/文件夾中有一個網站A和一個網站B.所以:
網站A:http://domain/
網站B:http://domain/en/
這兩個網站都有/images/文件夾中。mod_rewrite:兩個網站,圖像的相對鏈接。將圖像URL請求重寫爲單個物理文件夾

我要在網站B的圖像的任何請求重定向到該網站A.換言之的圖像:
http://domain/en/images/*http://domain/images/*

這就是我試圖做的:

RewriteEngine On 
RewriteBase/
RewriteRule ^en/images/(.*)$ /images/$1 

而且我已經嘗試添加條件,如RewriteCond %{REQUEST_FILENAME} !-f。它沒有工作。

什麼應該是.htacces文件的內容和我應該放在什麼物理文件夾中?

回答

2

如果你想要一個外部重定向(實際發送的瀏覽器到新的URL):

Redirect permanent /en/images/ /images/ 

否則,

Alias /en/images /var/www/document_root/images/ 

這應該在<VirtualHost>塊的網站。

如果且僅當你沒有訪問虛擬主機配置,如果你想要一個內部重定向,你可以把這個/var/www/document_root/en/images/.htaccess

RewriteEngine on 
RewriteRule .* /var/www/document_root/images/$0 
+0

我有權訪問,但我更願意使用.htaccess,因爲,如果我必須將其移動到另一個域,我不會依賴於服務器配置。 .htaccess將與它一起移動。 這是一個公平的假設嗎? 爲什麼是可取的? – wyxa

+0

它可以節省處理能力和文件訪問,並且在某些情況下可以降低安全風險。請參閱[Apache文檔](http://httpd.apache.org/docs/2.2/howto/htaccess.html#when)。如果您更改服務器/域名,您將不得不在主服務器配置中傳輸其他更改,因此您也不會因重定向而丟失任何更改。 –

+0

將'RewriteRule。*/var/www/document_root/images/$ 1'放在'/ var/www/document_root/en/images/.htaccess'中的.htaccess文件中也沒有完成這項工作。現在,當我嘗試訪問'http:// domain/en/images/1.jpg'時,我得到的是空白頁而不是404錯誤。 – wyxa

1

如果你把你的文檔根,它應該工作,但如果你想重定向瀏覽器,你在你的重寫規則的結束需要一個[R],並且是安全的,一個[L],太。

RewriteRule ^en/images/(.*)$ /images/$1 [R,L] 

要與301(永久)重定向,更改RR=301

+0

它沒有爲'重寫規則工作^ en/images /(.*)$/images/$ 1 [R,L]'原因我不知道 - 仍然給404錯誤(例如/en/images/1.jpg)。實際上,它是Joomla網站,在SEF網址的.htaccess中有一些規則。我已經在SEF規則上面插入了規則。 – wyxa