2010-09-17 57 views
0

我需要一個mod_rewrite規則來重定向url,具體取決於它們來自的主機名。用mod_rewrite替換URL的部分

的情況:

我們有指向同一個網站空間多個域,我們需要限制哪些特定的主機可以看到/下載。

domainname.com/images/logo.jpg和/www.domainname.com/images/logo.jpg應該轉變成domainname.com/domainname_com/images/logo.jpg

所以基本上我需要一個規則/函數使用_替換%{HTTP_HOST}中的點並移除/替換www子域。

有沒有辦法用mod_rewrite做到這一點?

回答

0

嘗試下列規則:

RewriteCond %{ENV:DOMAIN_DIR} ^$ 
RewriteCond %{HTTP_HOST} ^(www\.)?(.+) 
RewriteRule ^images/.+ - [E=DOMAIN_DIR:%2] 

RewriteCond %{ENV:DOMAIN_DIR} ^([^.]*)\.(.+) 
RewriteRule ^images/.+ - [E=DOMAIN_DIR:%1_%2,N] 

RewriteCond %{ENV:DOMAIN_DIR} ^[^.]+$ 
RewriteRule ^images/.+ %{ENV:DOMAIN_DIR}/$0 [L] 

的第一條規則將主機和它沒有www.存儲在環境變量DOMAIN_DIR。第二條規則將一次替換一個點; N標誌允許重新啓動重寫過程而不增加內部遞歸計數器。最後,第三條規則將把請求重寫到相應的目錄。