簡體   English   中英

將圖片網址重寫到其他域不起作用(提供404)

[英]rewriting image urls to other domain does not work (gives 404)

以下重寫規則出了點問題。 我以為自己做對了,因為我是從書本上復制的,而不是應該重定向到另一個域的。

我得到以下網址:

http://www.domaina.com/some-Text-is-here-B40178.jpg

圖片位於網址:

http://www.domainb.com/imgs/B40178.jpg

為了使這項工作有效,應如何編寫底層重寫規則?

RewriteRule ^.*-B([0-9]+)\\../$ http://www.domainb.com/imgs/B$1 [L]

您的規則缺少擴展名,因此不匹配。 而且看起來您最后還有一個多余的/。 如果始終為jpg,則可以添加。 或者只是匹配任何內容。

另外,您還需要捕獲該擴展名。

匹配“ jpg”

RewriteRule ^.*-B([0-9]+\.jpg)$ http://www.domainb.com/imgs/B$1 [R,L]

符合任何條件

RewriteRule ^.*-B([0-9]+\..+)$ http://www.domainb.com/imgs/B$1 [R,L]

我的首選方法是匹配某些圖像類型:

RewriteRule ^.*-B([0-9]+)\.(jpg|gif|png)$ http://www.domainb.com/imgs/B$1.$2 [R,L]

編輯錯過了您正在重定向到另一個域。 您還需要R標志。 我加了

您需要將規則標記為重定向,如下所示:

RewriteRule ^.*-B([0-9]+)\../$ http://www.domainb.com/imgs/B$1 [R,L]

編輯:您還需要添加文件擴展名。 我會很懶,並假設它們都是JPG:

RewriteRule ^.*-B([0-9]+).jpg$ http://www.domainb.com/imgs/B$1.jpg [R,L]

最后,我找到了一個不使用重定向的更好的解決方案:

 RewriteCond  %{REQUEST_URI}  !^$
 RewriteCond  %{REQUEST_URI}  !^/
 RewriteRule  .*              -    [R=400,L]
 RewriteRule ^.*-B([0-9]+)\.(jpg|jpeg|png|gif|JPG|GIF|PNG|JPEG)$ http://www.domain.com/imgs/B$1.$2 [P,L]`

因此,在URL中,圖像看起來好像不是來自另一個域。 P代表Proxy( http://httpd.apache.org/docs/2.4/rewrite/proxy.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM