对于图片库,我必须安装CDN域。
默认域名:
http://www.example.com
Apache folder: /html/mywebsite
CDN域名:
http://cdn.example.com
Apache folder: /html/mywebsite
CDN域需要相同的Apache文件夹,以便重写URL等原因。
问题:
http://cdn.example.com
and
http://www.example.com
打开同一个网站,这很糟糕。我不能从cdn重写(301)到www,因为我必须提供来自CDN的图像。我也不能使用403:
RewriteCond %{HTTP_HOST} ^cdn\.example\.com$ [NC]
RewriteRule .* / [F]
因为来自cdn的图片网址
http://cdn.example.com/images/test.jpg
得到一个403.是否可以只为根文件夹创建403而不是子文件夹,或者你有更好的想法吗?
顺便说一句。 robots.txt也很糟糕,因为cdn中的图像应该被编入索引。一个htaccess解决方案会很棒。
答案 0 :(得分:0)
如果您只希望cdn.example.com
的根(以及根目录中的任何文档)转到www.example.com
并且每个域使用单独的VirtualHost,您可以使用简单的内容
RedirectMatch permanent ^/?(.+\.php)$ http://www.example.com/$1
在cdn.example.com
的VirtualHost容器中。显然,您可以调整正则表达式以匹配您网站的文件。
请参阅Apache docs,了解为什么这比使用mod_rewrite更可取。它更简单,更易于维护,并且在许多情况下可以带来更好的性能。
答案 1 :(得分:0)
首先,谢谢你的软心和dartnow
@dartnow:
您的解决方案正在解决我的问题。谢谢你的时间。
有一个更好的解决方案:
RewriteCond %{HTTP_HOST} ^static.example.com$
RewriteCond %{REQUEST_URI} !\.(?i:php|jpe?g|ico|js|txt|css|pdf|zip|gz|gif|png)$
RewriteRule .* http://example.com%{REQUEST_URI} [L,R=301]
i:cond中的php是来自php文档的图像。 http://metasun.com/b/prevent-cdn-caching-webpages-avoid-duplicate-content